我正在處理有關從兩個MySQL表中選擇數據的問題。PHP MySQL選擇最新的條目按ID分組,並按時間戳排序
First table holds messages | messages | (id, msg_group_id, to_user_id, from_user_id, datetime)
Second table holds user data | profiles | (user_id, name, firstname, ...)
ATM它的工作方式,我可以選擇ALL消息具有一定的「to_id」,並通過添加越來越誰發送消息的用戶名和姓連接語句。
我現在的問題是,我不能找出一種方法來只有選擇某個msg_group_id的最新消息。
我已經嘗試過將GROUP BY msg_group_id與ORDER BY datetime DESC結合在一起。
但是,這隻會引發消息表中的第一個條目。但我想要最後一個。 :-)
我希望你能幫助我。 :-)
我實際的SQL語句:
SELECT LEFT(messages.message, 10) AS message,
`messages`.`msg_group_id`,
`messages`.`datetime`,
`profiles`.`name`,
`profiles`.`firstname`
FROM `messages`
LEFT JOIN `profiles`
ON `messages`.`from_user_id` = `profiles`.`user_id`
WHERE `to_user_id` = '2'
ORDER BY `datetime` DESC
LIMIT 20;
由於提前
樣本輸入:
[消息]
|id|msg_group_id|to_user_is|from_user_id|message |datetime|
0 | 1 | 1 | 2 | Hello World1 | 2015-12-21 10:42:00
1 | 1 | 1 | 2 | Hello World2 | 2015-12-21 10:43:00
2 | 1 | 1 | 2 | Hello World3 | 2015-12-21 10:44:00
【簡況】
user_id|name |firstname|
1 | Test | User
2 | Thanks | Worldname
結果(我不想要什麼)
message|msg_group_id|datetime|name|firstname
Hello World1 | 1 | 2015-12-21 10:42:00 | Thanks | Worldname
結果(我想)
message|msg_group_id|datetime|name|firstname
Hello World3 | 1 | 2015-12-21 10:44:00 | Thanks | Worldname
謝謝你們糾正我的錯誤格式化;-) – nira
可以添加樣品的輸入和輸出? –
只是增加了一些...但我找不到一種方式來以適當的方式格式化它,我必須將其標記爲代碼? ---哈,至少格式化作品(在某種程度上);-) – nira