我有四张桌子,
A、B、C、D
A有柱辅助装置,
B有柱辅助装置,
C有柱辅助装置,
D有柱辅助装置
(在所有4个表中,aid是公共列)
现在我想从表中提取B、C或D中不存在的行
有谁能告诉我这个的sql查询吗?
最佳答案
准备示例数据:
CREATE TABLE A (aid int);
CREATE TABLE B (aid int);
CREATE TABLE C (aid int);
CREATE TABLE D (aid int);
INSERT INTO A VALUES (1);
INSERT INTO A VALUES (2);
INSERT INTO A VALUES (3);
INSERT INTO A VALUES (4);
INSERT INTO A VALUES (5);
INSERT INTO B VALUES (2);
INSERT INTO C VALUES (3);
INSERT INTO D VALUES (4);
查询:
SELECT aid
FROM A
LEFT OUTER JOIN B on A.aid=B.aid
LEFT OUTER JOIN C on A.aid=C.aid
LEFT OUTER JOIN D on A.aid=D.aid
WHERE B.aid IS NULL AND C.aid IS NULL AND D.aid IS NULL;
结果是
1
和5
。关于sql - SQL查询以从一个表中获取其他3个表中不存在的行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44944456/