【发布时间】:2016-02-25 17:11:49
【问题描述】:
让我举个例子来理解我的问题。
假设我有一个表 A 和一个表 B。这些表可以根据列连接(比如 x 和 y 都在)。
我想根据 x 和 y 连接两个表,以找出表 A 中表 B 中不存在一对 (x,y) 的所有行。
我现在要做的是:
SELECT * FROM A a
LEFT JOIN B b
ON a.x = b.x AND a.y = B.y
WHERE b.x IS NULL AND b.y IS NULL;
结果还可以……
但我想在 A 中拥有 B 中不存在的情侣 (x,y),并确保仅在 B 中存在 x 的情侣...
有什么想法吗?
我有以下想法:
SELECT * FROM A a
LEFT JOIN B b
ON a.x = b.x AND a.y = B.y
WHERE b.x IS NULL AND b.y IS NULL
AND x in (SELECT x FROM B);
这可行,但对我来说似乎不是一个好方法......
示例数据为:
在 A 中,我们有 (x,y): (1,2) (1,5) (2,3) (3,7)
在 B 中,我们有 (x,y): (1,4) (1,5) (3,9)
预期结果是:
(1,2) (3,7)
感谢您的帮助!
最好的问候
【问题讨论】:
-
您能否发布一些示例数据和预期结果。 How to create a Minimal, Complete, and Verifiable example
标签: mysql left-join two-columns