Mysql 比较两个SQL表并返回缺少的ID?

Mysql 比较两个SQL表并返回缺少的ID?,mysql,sql,except,Mysql,Sql,Except,我有两个简单的表:(这里只有“id”列) 表1: id 1 2 3 4 表2: id 2 4 sql查询应比较两个表中是否缺少表2中的“id”,并返回: 1,2 有什么想法吗?:)TY给这只猫剥皮有几种方法: SELECT table1.ID FROM table1 WHERE table1.ID NOT IN(SELECT table2.ID FROM table2) 或者可以使用左外连接: SELECT table1.ID FROM

我有两个简单的表:(这里只有“id”列)

表1:

id
1
2
3
4
表2:

id
2
4
sql查询应比较两个表中是否缺少表2中的“id”,并返回: 1,2


有什么想法吗?:)TY

给这只猫剥皮有几种方法:

SELECT    table1.ID
FROM      table1
WHERE     table1.ID NOT IN(SELECT table2.ID FROM table2)
或者可以使用左外连接:

SELECT          table1.ID
FROM            table1
LEFT OUTER JOIN table2 ON table1.ID = table2.ID
WHERE           table2.ID IS NULL
试试这个:

SELECT    table1.id
FROM      table1
WHERE     table1.id NOT IN(SELECT table2.id FROM table2)

到目前为止,所有答案只显示了表1中缺少的ID。您是否需要一个查询来返回表2中列1中缺少的所有查询?嗨,Paul,我需要的不是唯一的方法。关键字是
,除了
。MySQL不支持此操作,但在搜索中使用它将返回大量关于工作和其他方法的结果。(这个问题不时出现。)我建议您在第一次查询中使用表名前缀来澄清您指的是哪个ID字段,如果只是因为以后扩展它会使阅读变得非常混乱。@Raihan,因为对于给定的T1,左侧外部可能会从T2连接“无行”(这是此方法的关键)。缺少的行是指。。。缺失:-)
SELECT    table1.id
FROM      table1
WHERE     table1.id NOT IN(SELECT table2.id FROM table2)