【发布时间】:2013-03-30 18:42:53
【问题描述】:
我已经看到了各种各样的例子,但是我找不到一个明确的例子来说明如何在没有给定值的情况下使用关联 table_A_B 从 table_A 返回与 table_B 中的行不相关的所有行对于table_A.id 或table_B.id。我能找到的最接近的匹配是:
获取与
B中的一个或多个行不相关但不知道B 中的哪个值是问题的A列表。获取与给定
B无关的A列表。获取
A的列表,其中逗号分隔的字段为不相关的B(我不确定我是否看到了这一点,但似乎可以扩展一个示例)。As 和Bs 的列表彼此不相关,但没有表明哪个不相关。
我还可以获得所有潜在A_B 元组的列表:
SELECT A.id, B.id FROM A
INNER JOIN B ON A.id <> B.id
并且我可以假设使用EXCEPT 解决方法之一(我认为)针对关联表,但所有尝试均不成功,我想一旦该连接返回数百万个潜在组合,它的效率将大大降低无论如何。
所以给定表格值:
A
id | name
1 | X
2 | y
3 | z
B
id | name
7 | e
8 | f
9 | g
A_B
id | a_id | b_id
1 | 1 | 7
2 | 1 | 8
3 | 1 | 9
1 | 2 | 7
2 | 2 | 8
1 | 3 | 7
是否有会返回的查询: 一个 |乙 2 | 9 3 | 8 3 | 9
甚至更好:
A | B
y | g
z | f
z | g
或者这是自找麻烦?
【问题讨论】:
标签: mysql foreign-keys set-operations