首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >SQL如何比较两个不同表中的两列

SQL如何比较两个不同表中的两列
EN

Stack Overflow用户
提问于 2015-03-06 04:13:13
回答 7查看 51.4K关注 0票数 8

我有两个表,其中表1包含4列,表2包含8列。我在table1中有两列,我想将它们与table2中的两列进行比较。

代码语言:javascript
复制
Table 1 have column1 and column2 (that needs to be compared)
Table 2 have column6 and column7 (that needs to be compared) 

我需要比较这两列的组合。我试着执行下面的查询,但它不起作用

代码语言:javascript
复制
Select * from table1 
where column1, column2 NOT IN (Select column6, column7 from table2)

如何比较这两个表中的两列?

EN

回答 7

Stack Overflow用户

发布于 2015-03-06 04:20:26

尝试使用减号语句。这将为您提供来自table1的第一个select语句的所有结果,这些结果不在table2的第二个select语句中。

代码语言:javascript
复制
select column1, column2 from table1
minus
select column6, column7 from table2
票数 2
EN

Stack Overflow用户

发布于 2020-04-20 22:30:15

Except显示了两个表之间的差异( Oracle人员使用减号代替except,并且语法和用法是相同的)。它用于比较两个表之间的差异。例如,让我们看看这两个表之间的区别

代码语言:javascript
复制
SELECT * FROM
 table1
EXCEPT
SELECT * FROM
 table2
票数 2
EN

Stack Overflow用户

发布于 2015-03-06 15:50:37

NOT EXISTSNOT IN的“空安全”版本。如果您指的是column1和column2在table2中不在同一行的组合:

代码语言:javascript
复制
select *
from table1
where NOT EXISTS (select 1 from table2
                  where table1.column1 = table2.column6
                    and table1.column2 = table2.column7)

或者,如果您的意思是column1和column2值在table2中甚至不能在不同的行中:

代码语言:javascript
复制
select *
from table1
where NOT EXISTS (select 1 from table2
                  where table1.column1 = table2.column6)
  and NOT EXISTS (select 1 from table2
                  where table1.column2 = table2.column7)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28886856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档