Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

obtendo o nome pai da categoria filho com uma única consulta no mysql


Juntar a tabela consigo mesma , usando o parent coluna para vincular ao cat_id do pai.
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
  • Cuidado:como alguns elementos não têm pais (NULL ), coloquei um LEFT OUTER JOIN para que essas linhas também sejam exibidas. Se você não quiser isso, use um JOIN em vez de LEFT OUTER JOIN .
  • Você também pode mostrar as linhas, mas exibir outra coisa (vazio ou um texto ou ...) em vez do NULL usando COALESCE .
  • Você pode considerar o resultado como uma (grande) nova tabela, para que possa adicionar cláusulas WHERE como costuma fazer, por exemplo, filtrando pelo nome pai:WHERE c2.cat_name = 'test2'