Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Abrufen des übergeordneten Namens der untergeordneten Kategorie mit einer einzigen Abfrage in MySQL

Setzt sich mit sich selbst an den Tisch , mit dem parent Spalte, um auf die cat_id des Elternteils zu verlinken.

SELECT c1.cat_id as childID, c1.cat_name ChildName, c2.cat_name as ParentName
from category c1
LEFT OUTER JOIN category c2
ON c1.parent = c2.cat_id
  • Achtung:Da einige Elemente keine Eltern haben (NULL ), füge ich einen LEFT OUTER JOIN ein also werden diese Zeilen auch angezeigt. Wenn Sie das nicht möchten, verwenden Sie einen JOIN statt LEFT OUTER JOIN .
  • Sie können die Zeilen auch anzeigen, aber statt NULL etwas anderes anzeigen (leer oder einen Text oder ...). durch Verwendung von COALESCE .
  • Sie können das Ergebnis als eine (große) neue Tabelle betrachten, sodass Sie wie gewohnt WHERE-Klauseln hinzufügen können, zum Beispiel nach dem übergeordneten Namen filtern:WHERE c2.cat_name = 'test2'