Ir para conteúdo

POWERED BY:

Arquivado

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

fekz

[Resolvido] Problema nessa query

Recommended Posts

Pessoal, tenho 2 tabelas, imagens e video, onde trago todas imagens e videos... Preciso que eles venham ordenados pelo campo ORDEM, as 2 tabelas tem esse campo, mas preciso que venha primeiro todas imagens dps todos videos.. do jeito que eu to fazendo eles vem misturados, vejam:

 

SELECT idJobImagem as id, imagem as media, ordem FROM fk_jobimagem INNER JOIN fk_jobcategoria USING (idJob) WHERE idJob = '".$idJob."' OR fk_jobcategoria.idJobPai = '".$idJob."'
UNION 
SELECT idJobVideo as id, video as media, ordem FROM fk_jobvideo INNER JOIN fk_jobcategoria USING (idJob) WHERE idJob = '".$idJob."' OR fk_jobcategoria.idJobPai = '".$idJob."'
ORDER BY ordem 

Se eu tenho 2 imagens e 2 videos.. com as ordens 1 e 2 1 e 2... vem um video uma imagem um video uma imagem... como faço pra trazer primeiro de uma tabela e dps de outra??

 

Vlw!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja se assim funciona:

SELECT idJobImagem as id, imagem as media, ordem FROM fk_jobimagem 
INNER JOIN fk_jobcategoria USING (idJob) WHERE idJob = '".$idJob."' 
OR fk_jobcategoria.idJobPai = '".$idJob."'
ORDER BY fk_jobimagem.ordem 
UNION 
SELECT idJobVideo as id, video as media, ordem FROM fk_jobvideo 
INNER JOIN fk_jobcategoria USING (idJob) 
WHERE idJob = '".$idJob."' OR fk_jobcategoria.idJobPai = '".$idJob."'
ORDER BY fk_jobvideo.ordem 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ao que parece ele não permite eu usar 2 ORDER BY, um pra cada Select.. ele só deixa eu usar no final.. do jeito que está.. já tinha testado o que você falou... não rola... ele não permite...

 

Quando eu uso UNION ele já traz separado por tabelas, mas ai eu preciso separar pela ordem... mas continuar separando por tabelas...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seção errada? Me desculpe, achei que podia ser em PHP tbm.

 

Pessoal, vejam que solução interessante eu achei... Meu chefe me ajudou

 

SELECT idJobImagem as id, imagem as media, ordem, 1 as tipo FROM fk_jobimagem INNER JOIN fk_jobcategoria USING (idJob) WHERE idJob = '".$idJob."' OR fk_jobcategoria.idJobPai = '".$idJob."'
UNION 
SELECT idJobVideo as id, video as media, ordem, 2 as tipo FROM fk_jobvideo INNER JOIN fk_jobcategoria USING (idJob) WHERE idJob = '".$idJob."' OR fk_jobcategoria.idJobPai = '".$idJob."'
ORDER BY tipo, ordem

você cria uma legenda tipo com numero 1 e 2 e ordena por tipo.. nunca imaginaria isso... pq pensei que o SQL consideraria 1 e 2 como uma coluna... alguem sabe pq ele nao considera?? em todo caso, abraços

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.