SQL查找缺少的链接表行
我是SQL新手,很难正确执行此查询。简化后,我的表格结构如下:SQL查找缺少的链接表行,sql,sqlite,join,Sql,Sqlite,Join,我是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\u B中没有表示A和B的哪些组合。此外,每个组合只能显示一次 下面是我尝试过的查询,但都不起作用。将行添加到链接表后,所有这些行都开始重复组合
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\u 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)
我怎样才能做到这一点
另外,如果能提供一个解释和解决方案,我将不胜感激,因为这可能很明显,我还没有完全了解连接。通过这些,您可以检查行的任何组合是否具有这些值 然而,“不代表于”则有所不同;实际上,您需要检查是否所有行都没有这些值 这需要一个操作员,如:
您能展示示例数据吗?这非常有效!我还了解了
交叉连接
和存在
。谢谢你的帮助+1.接受。。。
SELECT A.aId, B.bId
FROM A CROSS JOIN B
WHERE NOT EXISTS (SELECT 1
FROM A_B
WHERE aId = A.aID
AND bId = B.bID)