Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

willwalker

[Resolvido] Buscar Pai, Filho e Neto

Recommended Posts

Tenho uma tabela com todas as categorias relacionadas, e a relação delas é o Field pai.

 

Eu preciso trazer em um SELECT todas as categorias, tentei usar Inner Join, mas caso a consulta de uma dessas categorias não tiver filho ou neto, ela não traz o nome pai exemplo:

 

 

SELECT

pai.id,

pai.categoria_en,

filho.id,

filho.categoria_en

FROM

categorias AS pai

INNER JOIN categorias AS filho ON pai.id = filho.pai

 

Tem uma categoria com o nome Tea e ela não tem filho relacionado ao seu ID, então a consulta não traz ela.

 

Alguem pode me ensinar como fazer o select direito ? Eu sei que isso é possivel, eu que não estou sabendo fazer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui resolver, simplesmente usei LEFT OUTER JOIN. Com o INNER JOIN se alguma das tabelas não tiver valor comparado ele não traz desde o primeiro resultado. Segue a query:

 

SELECT
pai.id AS idp,
pai.categoria_en AS nnp,
filho.id AS idf,
filho.categoria_en AS nnf,
neto.id AS idn,
neto.categoria_en AS nnn
FROM
categorias AS pai
LEFT OUTER JOIN categorias AS filho ON pai.id = filho.pai
LEFT OUTER JOIN categorias AS neto ON filho.id = neto.pai
WHEREpai.id IN ('3340', '519', '3342', '3343', '3344', '703', '4534', '139', '100', '3347', '521', '4504', '739', '4508', '4518', '4533', '634', '4545', '3670', '4550', '4556', '4557', '4569', '4583', '4584', '4585', '4586', '140', '552', '4655', '4665', '4672', '4678', '3347', '4683', '4685', '4686', '3091', '4687', '536', '652', '48', '1178', '1189')

 

 

Abraços Walker

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.