我有两个表,其中表1包含4列,而表2包含8列。我在table1中有两列,我想将它们与table2中的两列进行比较。
Table 1 have column1 and column2 (that needs to be compared)
Table 2 have column6 and column7 (that needs to be compared)
我需要比较两列的组合。我尝试执行以下查询,但它不起作用
Select * from table1
where column1, column2 NOT IN (Select column6, column7 from table2)
如何比较两个表中的两列?
答案 0 :(得分:2)
尝试减号。这将为table1的第一个select语句提供任何结果,这些结果不在table2的第二个select语句中。
select column1, column2 from table1
minus
select column6, column7 from table2
答案 1 :(得分:1)
NOT EXISTS
是" null safe"版本NOT IN
。
如果你的意思是组合column1和column2不在table2中的同一行:
select *
from table1
where NOT EXISTS (select 1 from table2
where table1.column1 = table2.column6
and table1.column2 = table2.column7)
或者,如果你的意思是只有column1和column2的值甚至不能在table2中的不同行中:
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)
答案 2 :(得分:1)
Except显示了两个表之间的差异(Oracle专家使用减号而不是except,并且语法和用法相同)。它用于比较两个表之间的差异。例如,让我们看看两个表之间的差异
SELECT * FROM
table1
EXCEPT
SELECT * FROM
table2
答案 3 :(得分:0)
我能想到的具有最少比较的查询是
Select t1.*
from table1 t1
left join table2 t2 on t1.column1 in (t2.column6, t2.column7)
or t1.column2 in (t2.column6, t2.column7)
where t2.column6 is null
答案 4 :(得分:0)
select * from table1 where column1 not in(select column 6 from table2) or column2 not in(select column7 from table2)
这将为您提供table1中的行,其中col1和col6或col2和col7之间存在差异
希望这有帮助
答案 5 :(得分:0)
$('.volume-button').css({
"width": "100px"
});
答案 6 :(得分:0)
请尝试以下查询。
Select case when (table1.column1=table2.column6) then 1 else 0 end coluumn1_6
check , case when (table1.column2 =table2.column7 ) then 1 else 0 end
from table1
inner join
table2
on table1.ID=Table2.ID