sql >> Databasteknik >  >> RDS >> Mysql

få barnkategorins överordnade namn med en enda fråga i mysql

Gå med sig själv i bordet , med parent kolumn för att länka till förälderns cat_id.

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
  • Var försiktig:eftersom vissa element inte har några föräldrar (NULL ), lägger jag en LEFT OUTER JOIN så dessa rader visas också. Om du inte vill det, använd en JOIN istället för LEFT OUTER JOIN .
  • Du kan också visa raderna, men visa något annat (tomt eller atext eller ...) istället för NULL genom att använda COALESCE .
  • Du kan betrakta resultatet som en (stor) ny tabell, så du kan lägga till WHERE-satser som du brukar göra, till exempel genom att filtrera på föräldranamnet:WHERE c2.cat_name = 'test2'


  1. Hur kan jag logga och hitta de dyraste frågorna?

  2. Hur man beräknar en kvadrat i SQL Server

  3. Dialekt måste anges uttryckligen från v4.0.0

  4. Få årets dag från ett datum i SQL Server (T-SQL)