sql >> Base de Datos >  >> RDS >> Mysql

obtener el nombre principal de la categoría secundaria con una sola consulta en mysql

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 un LEFT OUTER JOIN por lo que esas filas también se muestran. Si no quieres eso, usa JOIN en lugar de LEFT OUTER JOIN .
  • También puede mostrar las líneas, pero mostrar algo más (vacío o un texto o ...) en lugar de NULL usando COALESCE .
  • 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'