asp.net 0 Denunciar post Postado Abril 21, 2006 Tenho duas tabelas com a seguinte estrutura:Tabela Usuario:idnomesobrenomeTabela Blogs:idusuario [chave estrangeira da tabela usuario]datatitulotextoPois bem estou precisando pegar a última postagem de cada usuário, ouseja a postagem mais recente do usuário A, a do usuário B, usuário C eassim vai, como faço isto? Compartilhar este post Link para o post Compartilhar em outros sites
ska_ska 0 Denunciar post Postado Abril 22, 2006 com subquery dá.. mas não é a melhor forma se sua tabela for grande.. pq pode ficar lento, muito lento... ai poderia tentar com group by usando having como filtro... SELECT a.*, b.*FROM(SELECT usu.*,ultimo_post = (SELECT id FROM post WHERE post.usuario = usu.id ORDER BY data DESC LIMIT 1)FROM usuario usuWHERE usuario IN (12,13,14,15,18)) AINNER JOIN post B ON a.ultimo_post = b.id bom. ahuauah.. aqcho q naum ficou legal..ahuhauahu.. tipo nem sei se o mysql aceita order em subquery... ou se mesmo suporta subquery na versão q você está usando... muito menos se esta query vai funcionar... mas vale a intenção... hehehehe qdo conseguir, posta no forum para ajudar q tiver a mesma dúvida, ok? ;) Compartilhar este post Link para o post Compartilhar em outros sites
Eclesiastes 2 Denunciar post Postado Abril 22, 2006 Experimenta com: SELECT usuario.id, usuario.nome, usuario.sobrenome, blogs.data, blogs.titulo, blogs.textoFROM usuario, blogsWHERE usuario.id = blogs.usuarioORDER BY blogs.data DESC Compartilhar este post Link para o post Compartilhar em outros sites
asp.net 0 Denunciar post Postado Abril 24, 2006 Mas no caso eu não estou trazendo apenas o último post de cada usuário e sim os post em ordem cronológica, usando este exemplo se o usuário B postar duas vezes no mesmo dia ele vai trazer dos post deste usuário. Eu tenho que fazer assim, separar os post de cada usuário e depois trazer apenas o 1 da lista, tenho que usar o comando Limit para trazer apenas o primeiro post que vai estar na ordem decrescente. Versão 4.0.26 - nt Compartilhar este post Link para o post Compartilhar em outros sites
asp.net 0 Denunciar post Postado Abril 24, 2006 No caso o problema é que a versão do MySQL não permiti SubQuery, agora tenho a opção de migrar para o 5.0 isto iria causar incompatibilidade nos comando Select Insert usados na versão 4.0.26? Compartilhar este post Link para o post Compartilhar em outros sites
Eclesiastes 2 Denunciar post Postado Abril 24, 2006 ... isto iria causar incompatibilidade nos comando Select Insert usados na versão 4.0.26?Até onde sei, não atrapalha em nada. Compartilhar este post Link para o post Compartilhar em outros sites
danielsjdr 0 Denunciar post Postado Abril 27, 2006 Tente fazer o seguinte:Faça um select que pegue os IDs dos usuarios, depois disto faça um loop para cada usuario e use o SQL que o Eclisiastes te passou limitando o resultado por usuario e pela clausula LIMIT...Ai você vai ter com certeza somente o ultimo registro dele... (sugestão) Compartilhar este post Link para o post Compartilhar em outros sites