仅选择两个表中不相等的列

时间:2014-04-03 17:10:50

标签: sql database join db2

如何查询数据库,只查找我们正在比较的两个表中不相等的列?

例如。

表A:

Name   Age   City   State 
John   32    xxx    xxx
Joe    45    yyy    yyy
Mark   22    zzz    zzz

表B:

Name   Age   City   State
John   32    xxx    xxx
Joe    45    yyy    yyy
Mark   21    zzz    zzz

我想只选择它们与TableB不同的列值。 同名,年龄,州但城市不同的地方。

例如Mark已满22岁,我需要在TableB中更新他的年龄。所以我需要我的查询才能找到需要更新的列。在上面的例子中,它应该只返回Mark的记录的Age列。

请指导。

1 个答案:

答案 0 :(得分:1)

试试这个:

SELECT T1.Name,T1.Age,T1.State,T1.City as City1,T2.City as City2
FROM TableA T1, TableB T2
WHERE T1.Age=T2.Age 
     AND T1.Name=T2.Name
     AND T1.State=T2.State
     AND T1.City<>T2.City