2014-01-20 211 views
0

我有個問題,如果你能幫助我嗎?
我使用了「分組依據」和「排序依據」,但該命令不工作
我希望得到一個列有相同的值一組的最後一個元素
這裏是我的查詢
$query = mysql_query("SELECT * FROM messages GROUP BY id_sender ORDER BY message_time");mysql group by and by by不工作

messages

id | sender | receiver | message_time | id_sender

1 | Joe | Mellen | 05-01-30 | 1
2 | Joe | Mellen | 04-01-31 | 1
3 | balbal | blabla | 05-01-30 | 2
4 | balbal | blabla | 15-31-20 | 2
我想讀你的額外的意見後,得到類似
Joe Mellen/04-01-31
balbal blabla/15-31-20

+0

您沒有正確使用GROUP BY。你能澄清你想要的結果嗎?它看起來像你希望每個發送者/接收者組具有最大'id'的行。那是對的嗎?爲此,你需要一個'MAX()'聚合和一個子查詢連接... –

+0

是的,沒錯,我想獲得id_sender相同的最高ID – Abdou1221

+0

如果你有一個完整的解決方案,感覺自由 – Abdou1221

回答

1

聽起來你正在尋找這樣的事情:

select m.* 
from messages m 
    join ( 
    select id_sender, max(id) maxid 
    from messages 
    group by id_sender 
    ) t on m.id = t.maxid 

基本上,您需要使用子查詢來確定每個id_sender的每個id的max(),然後再回到原始表。

+0

謝謝你很多人。 – Abdou1221