有以下两个表:
玩家
id | player
-----------
1 | ABC
2 | CDE
3 | FGH
游戏
id | player_id | created_at
-------------------------------------
1 | 1 | 2019-09-01 15:00:00
2 | 1 | 2019-09-15 17:00:00
3 | 2 | 2019-10-01 15:00:00
4 | 2 | 2019-10-05 18:00:00
5 | 2 | 2019-10-12 15:00:00
我如何选择所有玩家并显示他们的最新游戏(如果有的话),或者如果他们从未玩过游戏则显示 NULL?这个例子是这样的:
player_id | created_at
--------------------------------
1 | 2019-09-15 17:00:00
2 | 2019-10-12 15:00:00
3 | NULL
最佳答案
您可以尝试以下 - 使用左连接
select p.id, max(created_at)
from Players p left join Games g on p.id=g.player_id
group by p.id
关于MySQL:如果存在则选择最新记录,如果不存在则为NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58396100/