比较两个表-Oracle SQL开发人员



我正在尝试比较oracle-sql开发人员中的两个表。需要从具有不同C列值但具有相同a和B列值的两个表中获取行列表。

谢谢,Deepa

在我解释问题时,您可以使用join

select t1.*, t2.*
from table1 t1 join
table2 t2
on t1.a = t2. a and t1.b = t2.b
where t1.c <> t2.c;

这将返回两个表中具有匹配abc值不相同的所有行对。

如果C列是某种数字,则应该使用以下方法,这样就不会出现重复:

select t1.*,
t2.*
from table1 t1,
table2 t2
where t1.a = t2.a
and t1.b = t2.b
and t1.c < t2.c;

使用以下潜在对象的潜在答案。

表ddl

create table a_Table( 
colum1  varchar2(20),
colum2  varchar2(20),
colum3  varchar2(20)
);
create table b_Table( 
colum1  varchar2(20),
colum2  varchar2(20),
colum3  varchar2(20)
);
--POTENTIAL INSERT --        
INSERT INTO B_TABLE (COLUM1, COLUM2, COLUM3) VALUES ('A', 'A', 'B');
INSERT INTO B_TABLE (COLUM1, COLUM2, COLUM3) VALUES ('A', 'A', 'D');
INSERT INTO A_TABLE (COLUM1, COLUM2, COLUM3) VALUES ('A', 'A', 'C');
INSERT INTO A_TABLE (COLUM1, COLUM2, COLUM3) VALUES ('A', 'A', 'D');


--QUERY TO FIND THE DIFF --

SELECT
a.*,
b.*
FROM
a_table a
JOIN b_table b 
ON a.colum1 = b.colum1
AND a.colum2 = b.colum2
WHERE   a.colum3 != b.colum3;

相关内容

  • 没有找到相关文章

最新更新