[英]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.