目前我正在对两个表执行左连接。第一个表有一个 id 和一个人的名字,第二个表有一个 id,表 1 中的一个人的 id,然后是一个时间戳(他们最后一次飞行的时间)。
People Flights
id | name id | person_id | time
------------ ---------------------------
1 Dave 1 1 1284762115
2 Becky 2 1 1284787352
3 2 1284772629
4 2 1286432934
5 1 1289239480
当我执行左连接时,我得到了人员列表和他们的飞行时间,但我想要的只是人员列表及其最后一次飞行时间。
So SELECT p.id, p.name, f.time FROM People p LEFT JOIN Flights f ON p.id = f.person_id
返回
1 Dave 1284762115
1 Dave 1284787352
1 Dave 1289239480
2 Becky 1284772629
2 Becky 1286432934
我只想看看:
1 Dave 1289239480
2 Becky 1286432934
所以我只需要返回具有最高 f.id 或最高 f.time 的匹配项
最佳答案
SELECT
p.id, p.name, MAX(f.time) AS LastFlight
FROM
People p
LEFT JOIN Flights f ON p.id = f.person_id
GROUP BY
p.id, p.name
关于sql - 每个左连接返回 1 个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3739213/