我正在处理有关从两个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