我有两个表:用户(user_id、国家/地区)和消息(time_date、货币、amount_sold、message_user_FK)。这些表是一对多关系,即每个用户可以拥有多条消息。我想找到每个国家的最新消息。我有以下查询,但它不起作用。我做错了什么?
SELECT u.country, s.date_time
FROM users u
JOIN message s ON u.user_id = s.message_user_FK
JOIN(
SELECT message_user_FK ,MAX(date_time) date_time
FROM message
GROUP BY message_user_FK
) s1
ON(s.message_user_FK = s1.message_user_FK AND s.date_time = s1.date_time );
最佳答案
如果您想要具有最新日期时间的国家/地区,请使用简单的查询。 。 。 加入
和分组依据
:
SELECT u.country, MAX(s.date_time)
FROM users u JOIN
message m
ON u.user_id = m.message_user_FK
GROUP BY u.country;
关于php - 如何使用 JOIN 找到一对多关系中的最新行(日期和时间),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29202008/