lucas 0 Denunciar post Postado Abril 21, 2005 Olá, bom direto ao assunto: tenho 2 tabelas -> clientes # id_cliente nome endereco ... dt_cadastro -> fotos # id_foto id_cliente dt_cadastro Gostaria de saber quais clientes postaram uma foto nova. P/ isso fiz o seguinte SQL. SELECT c.id_cliente, nome, f.dt_cadastro FROM fotos f, clientes c WHERE (f.id_cliente = c.id_cliente) ORDER BY f.dt_cadastro DESC LIMIT 3 Não funcionou! :angry: Foi me retornado várias vezes o mesmo cliente e uma foto q não foi a última q ele posto. Logo resolvi colocar um DISTINCT. SELECT DISTINCT(c.id_cliente), nome, f.dt_cadastro FROM fotos f, clientes c WHERE (f.id_cliente = c.id_cliente) ORDER BY f.dt_cadastro DESC LIMIT 3 Continuou com o mesmo problema. Resolvi tentar um GROUP BY SELECT c.id_cliente, nome, f.dt_cadastro FROM fotos f, clientes c WHERE (f.id_cliente = c.id_cliente) GROUP BY c.id_cliente ORDER BY f.dt_cadastro DESC LIMIT 3 Bom, 3 clientes diferentes (o q eu realmente queria) MASSSS com a 1ª foto postada por ele e não a última. Eu realmente não sei mais o q fazer. Vi q na versão do MySQL 4.1 tem uma função "GROUP_CONCAT()". Parece ser super bacana. Olha a sintax dela: GROUP_CONCAT([DISTINCT] expr [,expr ...] [ORDER BY {inteiro_sem_sinal | nome_coluna | formula} [ASC | DESC] [,col ...]] [SEPARATOR valor_str]) Parece q ela tem o q eu preciso, MASSS (denovo) eu não posso usar a v4.1 :angry: Estou sendo "obrigado" a usar a versão 4.0.24 Você ae, q tá lendo o post, pode me ajudar?? to fazendo isso com PHP. Brigadu! Compartilhar este post Link para o post Compartilhar em outros sites
ska_ska 0 Denunciar post Postado Abril 22, 2005 na aplicação fica fácil... porém com 2 consultas SQL... agora direto na base, com uma consulta.. acreditoq você va ter q usar sub_querys... SELECT dentro de SELECT.... mas se conseguir, posta ai pra consultas futuras... mas se você soh quiser usar para puxar a data da ultima postada.. acho q funfa assim... SELECT c.id_cliente, nome, max(f.dt_cadastro) FROM fotos f, clientes c WHERE (f.id_cliente = c.id_cliente) GROUP BY c.id_cliente ORDER BY f.dt_cadastro DESC LIMIT 3 Compartilhar este post Link para o post Compartilhar em outros sites