我正在尝试比较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;
这将返回两个表中具有匹配a
和b
但c
值不相同的所有行对。
如果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;