mysql - 使用左连接限制查询

mysql - Limit a query with left join

我有 2 个这样的表:

Table人

id | name
---------
1  | john
2  | mike
3  | carl
4  | keny
5  | anna

Table 车辆

owner | vechicle
----------------
1     | RTA457
3     | GSW684
3     | GKI321
3     | SNE798
5     | YTT662

所以,我想查询连接两个表,如下所示:

SELECT * FROM person LEFT JOIN vehicle ON person.id=vehicle.owner

得到这些结果

id | name | owner | vechicle
----------------------------
1  | john | 1     | RTA457
2  | mike | NULL  | NULL
3  | carl | 3     | GSW684
3  | carl | 3     | GKI321
3  | carl | 3     | SNE798
4  | keny | NULL  | NULL
5  | anna | 5     | YTT662

最后我想限制3个人,展示他们所有的车辆,像这样:

id | name | owner | vechicle
----------------------------
1  | john | 1     | RTA457
2  | mike | NULL  | NULL
3  | carl | 3     | GSW684
3  | carl | 3     | GKI321
3  | carl | 3     | SNE798

有什么办法吗?

您可以这样查询:

SELECT * FROM person LEFT JOIN vehicle ON person.id=vehicle.owner LIMIT 10;

这个 SO 也可以派上用场。希望这对您有所帮助!

没试过,但是是这样的:

SELECT * FROM person
LEFT JOIN vehicle ON person.id = vehicle.owner
WHERE person.id IN (SELECT ID FROM PERSON LIMIT 3);

可能有助于子查询

SELECT
    *
FROM
    (SELECT * FROM person LIMIT 3) t
LEFT JOIN vehicle ON t.id = vehicle.owner