Ir para conteúdo

POWERED BY:

Arquivado

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

ccesarc

Group BY Pegar o último registro de cada

Recommended Posts

Pessoal estou com um problema simples, nao sei muito SQL, estou fazendo uma galeria de fotos para cada time de futebol

 

SELECT ga.* FROM galeria_imagem g, galeria_categoria ga, clubes c WHERE 1 AND g.galeria_categoria_id=ga.id AND ga.clubes_id=c.id AND g.destaque = 1 GROUP BY ga.clubes_id DESC ORDER BY ga.data_noticia DESC

 

Nao sei qual o motivo mas nao serve pra nada o ORDER BY quando se usa o GROUP BY.

 

O que eu queria eh pegar a ultima galeria de cada time. Sendo que nao esta vindo na order pela data e nao sei mais o que fazer.

 

Alguem pode me ajudar?

 

Obrigado a todo!!!!

 

Tentei usar essa dica aqui mesmo do forum mas tb nao deu

 

 

SELECT * FROM galeria_categoria g GROUP BY clubes_id HAVING max( data_noticia ) ORDER BY data_noticia DESC

 

Galera resolvi com essa ajuda aqui do forum, dai nao entendi o final dela onde tem "c2.clubes_id = c1.clubes_id" pq c1 eh da query anterior dai fiquei sem saber o que realmente se fez aqui.

 

select * from galeria_categoria c1 where c1.data_noticia = (select max(c2.data_noticia) from galeria_categoria c2 where c2.clubes_id = c1.clubes_id)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo,

você resolveu seu problema e agora sua dúvida é para entender a querie certo?

 

 

POis bem,

o que acontece na querie é o seguinte:

Voce possui uma querie principal e um sub-select (a querie entre os parenteses)

Na querie principal voce retorna todas as informações do clube

e no sub select você retorna a maior data do registro da querie principal,

este é o motivo da condição "where c2.clubes_id = c1. clubes_id", ligar a subquerie à querie principal,

retornando assim, somente o max(c2.data_noticia) do clube desejado.

Sem a clausula WHERE você retornaria o MAX(data) da tabela.

 

select *

from galeria_categoria c1

where c1.data_noticia = (select

max(c2.data_noticia)

from galeria_categoria c2

where c2.clubes_id = c1.clubes_id)

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.