说
Table A Table AB Table B
+----+---------+ +-----+-----+ +----+-----+
| id | name | | ida | idb | | id | age |
+----+---------+ +-----+-----+ +----+-----+
| 1 | 'one' | | 1 | 3 | | 3 | 3 |
+----+---------+ +-----+-----+ +----+-----+
| 2 | 'two' | | 2 | 4 | | 5 | 5 |
+----+---------+ +-----+-----+ +----+-----+
| 3 | 'three' | | 2 | 5 |
+----+---------+ +-----+-----+
What I want What I get
+---------+------+ +---------+------+
| name | age | | name | age |
+---------+------+ +---------+------+
| 'one' | 3 | | 'one' | 3 |
+---------+------+ +---------+------+
| 'two' | 5 | | 'two' | 5 |
+---------+------+ +---------+------+
| 'three' | NULL | | 'two' | NULL |
+---------+------+ +---------+------+
| 'three' | NULL |
+---------+------+
我的 sql 是
SELECT A.name, B.age
FROM A
LEFT JOIN AB
ON A.id = AB.ida
LEFT JOIN B
ON AB.idb = B.id
约束:我不想Where
出于特定原因使用语句,也sub-queries
出于性能原因。
有没有办法我只能获取关系 AB 与仅使用JOIN
/ON
而没有子查询存在的东西相匹配的记录?