【发布时间】:2017-04-19 03:00:22
【问题描述】:
您好,我有两张表,一张是 user,另一张是 user_details
用户表是
id name
---------
1 John
2 Tom
3 Amy
4 Kat
user_details 表是
id user_id money created_on
------------------------------------
1 1 2000 2016-12-01
2 1 5000 2016-12-02
3 1 6000 2016-12-03
4 2 2050 2016-12-01
5 2 5020 2016-12-02
6 3 6000 2016-12-04
我需要像
这样的结果name user_id money created_on
------------------------------------
John 1 6000 2016-12-03
Tom 2 5020 2016-12-02
Amy 3 6000 2016-12-03
Kat 4 NULL NULL
我的问题是我需要 user_details 表最近 created_on 的记录,为此我编写了以下查询,但我得到了所有结果,任何人都可以告诉我查询中有什么问题
SELECT * FROM `user` as `u` LEFT JOIN ( SELECT user_id,money,created_on FROM `user_details` WHERE created_on IN (SELECT MAX(created_on) FROM user_details group by user_id )) `userdata` ON `u`.`id` = `userdata`.`user_id`;
【问题讨论】:
标签: mysql group-by left-join where-in