使用SQL比较两列,以确保两者中都存在相同的值集

时间:2019-11-07 19:27:22

标签: sql

我要比较以下几列。需要确保表1的代码列中的所有值都存在于表2的代码列中。两个代码的存储顺序都不同。需要循环并对照其他表中的每个行值检查每个行值。

表1

Id  Code
1    2 
1    3
1    1 
1    4

表2

Id Code
1   1
1   2
1   3
1   4

3 个答案:

答案 0 :(得分:0)

减号函数将为您提供两个语句之间的区别:

select id, code
from table_1
minus
select id, code
from table_2   

答案 1 :(得分:0)

简单地将两者结合在一起

Select * from table1 t1 join table2 t2
On t1.id=t2.id and t1.code=t2.code

或使用存在/输入

  Select * from table1 t1 
  where exists(
  Select 1 from table2 t2 where 
   t1.id=t2.id and t1.code=t2.code)


    Select * from table1 t1
    where id, code
   In (
   Select id, code from table2) 

答案 2 :(得分:0)

使用not exists来获取缺少的代码:

select t1.*
from table1 t1
where not exists (select 1
                  from table2 t2
                  where t2.id = t1.id and t2.code = t1.code
                 );