如何选择一个表中所有未出现在另一表中的行?表格1:+-----------+----------+------------+| FirstName | LastName | BirthDate |+-----------+----------+------------+| Tia | Carrera | 1975-09-18 || Nikki | Taylor | 1972-03-04 || Yamila | Diaz | 1972-03-04 |+-----------+----------+------------+表2:+-----------+----------+------------+| FirstName | LastName | BirthDate |+-----------+----------+------------+| Tia | Carrera | 1975-09-18 || Nikki | Taylor | 1972-03-04 |+-----------+----------+------------+表1中不在表2中的行的示例输出:+-----------+----------+------------+| FirstName | LastName | BirthDate |+-----------+----------+------------+| Yamila | Diaz | 1972-03-04 |+-----------+----------+------------+也许这样的事情应该工作:SELECT * FROM Table1 WHERE * NOT IN (SELECT * FROM Table2)
3 回答
阿波罗的战车
TA贡献1862条经验 获得超6个赞
如果您在另一条注释中提到有300列,并且想要对所有列进行比较(假设这些列的名称相同),则可以使用a NATURAL LEFT JOIN隐式联接两个表之间所有匹配的列名称,以便不必繁琐地手动输入所有加入条件:
SELECT a.*
FROM tbl_1 a
NATURAL LEFT JOIN tbl_2 b
WHERE b.FirstName IS NULL
回首忆惘然
TA贡献1847条经验 获得超11个赞
您需要基于列名而不是进行子选择*。
例如,如果您有id两个表共有的字段,则可以执行以下操作:
SELECT * FROM Table1 WHERE id NOT IN (SELECT id FROM Table2)
慕标5832272
TA贡献1966条经验 获得超4个赞
SELECT *
FROM Table1 AS a
WHERE NOT EXISTS (
SELECT *
FROM Table2 AS b
WHERE a.FirstName=b.FirstName AND a.LastName=b.Last_Name
)
EXISTS 会帮助你...
添加回答
举报
0/150
提交
取消