ccesarc 0 Denunciar post Postado Junho 27, 2011 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
Caio Cardoso 0 Denunciar post Postado Julho 7, 2011 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