我有4张 table ,
A, B, C, D
A 有 Aid 列, B 有辅助栏, C 有 Aid 列, D有列Aid
(援助是所有4个表中的公共(public)栏)
现在我想从 A 表中获取 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 查询从一个表中获取其他 3 个表中不存在的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44944456/