Mysql
 sql >> Base de données >  >> RDS >> Mysql

obtenir le nom du parent de la catégorie enfant avec une seule requête dans mysql

Rejoindre la table avec lui-même , en utilisant le parent colonne à lier au cat_id du parent.

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
  • Attention :certains éléments n'ayant pas de parents (NULL ), j'ai mis un LEFT OUTER JOIN donc ces lignes sont également affichées. Si vous ne le souhaitez pas, utilisez un JOIN au lieu de LEFT OUTER JOIN .
  • Vous pouvez également afficher les lignes, mais afficher autre chose (vide ou un texte ou ...) à la place du NULL en utilisant COALESCE .
  • Vous pouvez considérer le résultat comme une (grande) nouvelle table, vous pouvez donc ajouter des clauses WHERE comme vous le faites habituellement, par exemple en filtrant sur le nom du parent :WHERE c2.cat_name = 'test2'