Olá, primeiramente desculpem-me pelo título que utilizo, pois não sei como descreve-lo, o que preciso é uma query única que selecione primeiramente por uma coluna de minha tabela, em seguida outra relacionada a mesma(pai). Para facilitar vou explicar minha situação:
Possuo uma tabela categorias em meu banco de dados, a mesma tabela possui uma coluna category_id(primaria) e category_parent(onde quando null, a categoria é uma categoria pai, já quando possui algum valor esta será filha da categoria com o mesmo id). Preciso que minha consulta me retorne algo do tipo:
Categoria Pai 1 (category_id = 1, category_parent IS NULL)
Categoria Filha 1 (category id = 32, category_parent = 1)
Categoria Filha 2 (category id = 38, category_parent = 1)
Categoria Filha 3 (category id = 40, category_parent = 1)
Categoria Filha 4 (category id = 42, category_parent = 1)
Categoria Pai 2 (category_id = 5, category_parent IS NULL)
Categoria Filha 1 (category_id = 2, category_parent = 5)
Categoria Filha 2 (category_id = 6, category_parent = 5);
...
(Ilustrei os id's para perceberem que a ordenação precise ser bem genérica).
Tentei utilizar o código:
SELECT cat.* ,(SELECT sub.* FROM mr_categories sub where sub.category_parent = cat.category_id ) FROM mr_categories cat WHERE category_parent IS NUll
Mas me deparei com o seguinte erro:
Citar
SQLSTATE[21000]: Cardinality violation: 1241 Operand should contain 1 column(s)
Gostaria de saber se isso é possível e como fazer, desde já agradeço!
Obs.: sei como fazer isso através de duas buscas diferente, mas preciso que seja feita em uma só busca para poder utilizar o limite de minha paginação.
Pergunta
melquides
Olá, primeiramente desculpem-me pelo título que utilizo, pois não sei como descreve-lo, o que preciso é uma query única que selecione primeiramente por uma coluna de minha tabela, em seguida outra relacionada a mesma(pai). Para facilitar vou explicar minha situação:
Possuo uma tabela categorias em meu banco de dados, a mesma tabela possui uma coluna category_id(primaria) e category_parent(onde quando null, a categoria é uma categoria pai, já quando possui algum valor esta será filha da categoria com o mesmo id). Preciso que minha consulta me retorne algo do tipo:
Categoria Pai 1 (category_id = 1, category_parent IS NULL)
Categoria Filha 1 (category id = 32, category_parent = 1)
Categoria Filha 2 (category id = 38, category_parent = 1)
Categoria Filha 3 (category id = 40, category_parent = 1)
Categoria Filha 4 (category id = 42, category_parent = 1)
Categoria Pai 2 (category_id = 5, category_parent IS NULL)
Categoria Filha 1 (category_id = 2, category_parent = 5)
Categoria Filha 2 (category_id = 6, category_parent = 5);
...
(Ilustrei os id's para perceberem que a ordenação precise ser bem genérica).
Tentei utilizar o código:
Mas me deparei com o seguinte erro:
Gostaria de saber se isso é possível e como fazer, desde já agradeço!
Obs.: sei como fazer isso através de duas buscas diferente, mas preciso que seja feita em uma só busca para poder utilizar o limite de minha paginação.
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.