我想找到两个表之间的区别,因为表2中有一列链接到表1 ID列但遗憾的是站点管理器从表1中删除了项目,现在表2中有很多未链接的行什么原因导致网站出现问题.
例如,这里是表结构
Table 1 table 2
ID | name ID | value (this is the ID from table 1)
1 | one 1 | 1
2 | two 2 | 2
3 | three 3 | 4
6 | six 4 | 4
7 | seven 5 | 5
6 | 5
7 | 6
8 | 7
9 | 1
10 | 1
Run Code Online (Sandbox Code Playgroud)
正如您在表2中看到的那样,表1中的一些ID是多行的,我希望得到表1中不存在的所有ID作为查询的返回.
只是为了澄清这是我想从查询中得到的
结果:
ID (form table 2) | value
3 | 4
4 | 4
5 | 5
6 | 5
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用例如NOT IN但是我必须使用大约1000个ID,而表1包含的项目多于表2中链接的项目
如何进行返回上述结果的查询?
使用 NOT EXISTS
select *
from table2 A
Where Not exists (select 1 from table1 B Where A.ID = B.value)
Run Code Online (Sandbox Code Playgroud)
要么 LEFT OUTER JOIN
select *
from table2 A
LEFT OUTER JOIN table1 B
on A.ID = B.value
Where B.value IS NULL
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6960 次 |
| 最近记录: |