[英]How can I find latest row (date and time) in 1 to many relation using JOIN
我有两个表:users( user_id ,国家/地区)和message( time_date ,货币,amount_sold, message_user_FK )。 这些表的关系为1:1,即每个用户可以有多个消息。 我想找到每个国家的最新消息。 我有以下查询,但不起作用。 我究竟做错了什么?
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 );
如果您希望国家/地区具有最新的日期时间,请使用简单的查询。 。 。 join
并group by
:
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;
这怎么了
SELECT u.country ,MAX(m.date_time) date_time
FROM users u
JOIN message m on u.user_id = m.message_user_FK
GROUP BY u.country
您的子查询已关闭-您只是按错误的字段进行分组。 这样做也一样。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.