Estou com um problema para listar os visitantes recentes, no meu sistema
Tenho a seguinte tabela:
CREATE TABLE `recente` ( `id` int(11) NOT NULL auto_increment, `de` int(11) NOT NULL, `para` int(11) NOT NULL, `dh` datetime NOT NULL, PRIMARY KEY (`id`) )
Meio óbvio, mas vamos a explicação:
"de" é o ID do usuário que fez a visita
"para" é o ID do usuário que foi visitado
"dh" é a data e hora
Alguns dados:
INSERT INTO `recente` (`id`, `de`, `para`, `dh`) VALUES (1, 1, 2, '2010-02-17 09:10:17'), (2, 1, 2, '2010-02-17 09:10:49'), (3, 1, 2, '2010-02-17 09:11:55'), (5, 2, 1, '2010-02-17 09:13:13'), (6, 2, 1, '2010-02-17 09:17:20'), (7, 1, 2, '2010-02-17 09:27:30'), (8, 1, 2, '2010-02-17 09:30:04'), (9, 1, 2, '2010-02-17 09:36:10'), (10, 1, 2, '2010-02-17 09:38:11'), (11, 1, 3, '2010-02-17 09:41:46'), (12, 3, 2, '2010-02-17 09:41:47');
SQL atual:
SELECT DISTINCT(de), para, id, dh FROM recente WHERE para=3 GROUP BY de ORDER BY dh DESC
O problema é que quando seleciona os ultimos visitantes, ele não pega os ultimo realmente.
Deve ser algum conflito entre o DISTINCT e o ORDER BY, sei lá.
Alguma sugestão?