【发布时间】:2014-11-28 20:56:03
【问题描述】:
我是 SQL 新手,很难正确查询此查询。简单来说,我的表结构是这样的:
Table A:
aId primary key
Table B:
bId primary key
Table A_B:
aId foreign key A(aId)
bId foreign key B(bId)
我想创建一个 SQL 查询,它会告诉我 A 和 B 的哪些组合未在链接表 A_B 中表示。此外,每个组合只能显示一次。
以下是我尝试过的查询,但均无效。在将行添加到链接表后,它们都开始重复组合。
SELECT A.aId, B.bId
FROM A JOIN B JOIN A_B
WHERE (A.aId!=A_B.aId OR B.bId!=A_B.bId)
SELECT A.aId, B.bId
FROM A LEFT JOIN B LEFT JOIN A_B
WHERE (A.aId!=A_B.aId OR B.bId!=A_B.bId)
SELECT A.aId, B.bId
FROM A JOIN B JOIN A_B
WHERE (A.aId!=A_B.aId AND B.bId!=A_B.bId)
我怎样才能做到这一点?
此外,非常感谢您提供解决方案的解释 - 可能很明显,我还没有完全理解连接。
【问题讨论】:
-
你能展示示例数据吗?