Unirse a la mesa consigo misma , usando el parent
columna para vincular al cat_id del padre.
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
- Tenga cuidado:dado que algunos elementos no tienen padres (
NULL
), puse unLEFT OUTER JOIN
por lo que esas filas también se muestran. Si no quieres eso, usaJOIN
en lugar deLEFT OUTER JOIN
. - También puede mostrar las líneas, pero mostrar algo más (vacío o un texto o ...) en lugar de
NULL
usandoCOALESCE
. - Puede considerar el resultado como una tabla nueva (grande), por lo que puede agregar cláusulas WHERE como lo hace normalmente, por ejemplo, filtrando el nombre principal:
WHERE c2.cat_name = 'test2'