Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Amigos, quebrei a cabeça por 3 dias, e não consegui;. tenho que pedir ajudar aos universitários.
Bem, o meu sistema é um sistema de mensagens enviadas e recebedias. Ou seja, Ao listar as mensagens, estou pesquisando pelo ID do usuários, e agrupando com GROUP BY pelo usuário que enviou a mensagem para tal usuário. Sendo que ao dar um GROUP BY, ele ignora muitos registros.
Por exemplo, se eu der um SELECT e usar um ORDER BY, ele me retorna os seguintes registros:
SELECT * FROM `menssagens` WHERE Envpara = '7' ORDER BY ID DESC
ele me retorna:
ID DATA HORA ASSUNTO TEXTO Envpor Envpara
29914 2013-01-24 01:04:22 TESTE TESTE 283 7
29912 2013-01-24 00:07:48 chat teste 283 7
29907 2012-11-12 20:58:47 chat Ownnn... 646 7
9904 2012-11-12 11:19:52 chat Hahaha... 646 7
Bem, como podem ver, orientado ao ID DESC, vem a mensagem de um usuário com o ID 283
Porém, se eu uso um GROUP BY, ele ignora esse Usuário com ID 283, e chama um usuário que nem aparece nessa lista dos ultimos que enviaram mensagem para o usuário com ID 7, que é o usuário logado.
SELECT * FROM `menssagens` WHERE Envpara = '7' GROUP BY Envpor ORDER BY ID DESC
ao realizar a consulta acima, ele me retorna valores aleatórios, como:
ID DATA HORA TITULO TEXTO Envpor Envpara
29848 2012-09-29 16:53:40 chat Tudo ótimo! :D... 372 7
Pela logica, deveria agrupar primeiro a do usuário 283, que foi o ultimo a mandar mensagem para o usuário de ID 7, mas não é assim que está me retornando.
Alguém sabe me dar uma luz?
Carregando comentários...