Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

newboxters

Único SELECT com várias colunas e DISTINCT

Recommended Posts

Fiz um esquema de "suporte via ticket", que basicamente cria um registro no banco de dados com o id do cliente e sua mensagem.

Para exibir todos os tickets ou tickets abertos, isso tudo bem, afinal há um campo que eu criei que atualiza o status do registro, entre outros necessários.

Mas o principal problema, é que agora tive a necessidade de exibir todos os usuários que já solicitaram suporte.

 

A tabela (resumidamente) está assim:

id_ticket | id_cliente | msg..

1 | 32 | Tenho dúvida em W.

2 | 17 | Gostaria de saber pq ocorre X.

3 | 26 | Hoje eu percebi que o Y parou.

4 | 32 | Meu deus! Agora o Z sumiu.

5 | 32 | Apesar de tudo, do A ao V está ok.

Então, neste caso o cliente de id=32 fez 3 requisições, mas na lista eu desejo que ele apareça uma única vez, então a consulta seria:

SELECT DISTINCT id_cliente FROM registro_ticket

E funciona correto. Mas nessa mesma página, eu preciso exibir também a mensagem do último ticket que esse cliente abriu.

 

Então, eu tentei fazer a consulta:

SELECT DISTINCT id_cliente, msg FROM registro_ticket
- mas assim já não funciona, visto que (pelo que pesquisei) ele irá retornar um único id_cliente repetido por msg, e como cada msg é diferente, exibe todos.

 

Enfim, alguém sabe como eu posso fazer para exibir corretamente ou substituir por algo como GROUP BY ou JOIN e que funcione?

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei se funciona em MySql ...

 

SELECT * 
FROM registro_ticket a
where a.id_ticket = (select max(b.id_ticket)
							  FROM registro_ticket b
							  where b.id_clinete = a.id_cliente)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caramba Motta! ;) Funcionou corretamente.

Nem foi necessário utilizar outros comandos mais complexos. O principal mesmo foi pensar na lógica da consulta e comparar esses dois selects.

 

Assim ele não pega id_cliente repetido e se tiver mais de um id_cliente ele exibe o último registro feito por esse cliente e todos os demais campos que eu precise exibir são mostrados.

 

Muito obrigado mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.