Ir ao conteúdo
  • Cadastre-se

MySql - ORDER BY com chave composta


Posts recomendados

Bom pessoal, estou montando um chat e as colunas são: idMsg, idUsuario1, idUsuario2, texto, data. Populada ficaria algo mais ou menos assim

 

eterasd23.jpg

Estou fazendo uma query para retornar as conversas, ou seja, vou ter várias mensagens e estou fazendo uma query para me retornar as mensagens de um usuario por grupo, porém como tenho dois campos usuarios, 1 e 2, preciso fazer um GROUP BY composto, dizendo que precisarei agrupar quando, por exemplo, for "10 e 11" ou "11 e 10", entenderam? Há como?

porque assim retornarei todas conversas e consequentemente a última mensagem enviada por um dos dois.

Link para o comentário
Compartilhar em outros sites

  • mês depois...

Opa, tranquilo?

 

Seguinte, o group by tem como objetivo agrupar itens duplicados, sendo assim você teria que criar um select trazendo apenas a coluna idUsuario1 e idUsuario2, pois o texto e data dificilmente serão iguais.

 

Sendo assim, faça um group by idUsuario1, idUsuario2 no final do select. Você também poderá usar o select distinct, que só aparecerá os itens que não contém duplicados. Segue link como referencia:

 

http://www.w3schools.com/sql/sql_distinct.asp

 

Caso for necessário retornar pelo menos uma data, você poderá usar um select utilizando em data a função max(data) ou min(data).

 

Qualquer dúvida estou à disposição.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!