sql >> Database teknologi >  >> RDS >> Mysql

få børnekategoriens overordnede navn med en enkelt forespørgsel i mysql

Slå sammen i bordet med sig selv , ved hjælp af parent kolonne for at linke til forælderens 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
  • Vær forsigtig:da nogle elementer ikke har nogen forældre (NULL ), sætter jeg en LEFT OUTER JOIN så disse rækker vises også. Hvis du ikke ønsker det, så brug en JOIN i stedet for LEFT OUTER JOIN .
  • Du kan også vise linjerne, men vise noget andet (tomt eller atekst eller ...) i stedet for NULL ved at bruge COALESCE .
  • Du kan betragte resultatet som én (stor) ny tabel, så du kan tilføje WHERE-sætninger, som du plejer, for eksempel ved at filtrere på det overordnede navn:WHERE c2.cat_name = 'test2'


  1. Ukendt kolonne i 'feltliste', når den forberedte sætnings pladsholder er i underforespørgsel

  2. SQL-forespørgsel for at finde en tabels primære nøgle?

  3. Hvordan ændrer jeg placeringen af ​​en kolonne i en PostgreSQL-databasetabel?

  4. Materialiseret visning i mysql