我有两个简单的表:(这里只有 “ID” 列)比较两个SQL表并返回缺少的ID?
表1:
id
1
2
3
4
表2:
id
2
4
SQL查询应该比较两个表丢失“ ID“在表2中并返回: 1,2
有什么想法? :) TY
我有两个简单的表:(这里只有 “ID” 列)比较两个SQL表并返回缺少的ID?
表1:
id
1
2
3
4
表2:
id
2
4
SQL查询应该比较两个表丢失“ ID“在表2中并返回: 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
我建议你在第一个查询中使用表名前缀来说明你的意思是哪个ID字段,如果只是因为如果你扩展它会变得非常混乱后来。 – Polynomial
@Polynomial,同意并更新。 –
年前。但仍然有帮助。幸运的是,我找到了你的答案:D thx –
select t1.*
from table1 t1
left outer join table2 t2 on t1.id = t2.id
where t2.id is null
@Raihan因为在给定的T1下,LEFT OUTER可能会从T2中加入“no rows”(这是这种方法的关键)。缺失的行是这样的行...缺少:-) – 2011-11-03 16:07:28
为什么downvote? – RedFilter
试试这个:
SELECT table1.id
FROM table1
WHERE table1.id NOT IN(SELECT table2.id FROM table2)
到目前为止,所有的答案都只显示table1中缺少table1中的id。你是否需要一个查询来返回table1中所有在column1中缺少的查询? –
嗨保罗,没有一种方法只是我需要的。 – MilMike
该关键字是“EXCEPT”。 MySQL不支持此操作,但在搜索中使用它将返回大量关于工作和其他方法的结果。 (这个问题不时出现) – 2011-11-03 16:09:14