SQL如何比较两个表中的数据并获得两个表之间不同的结果

时间:2016-09-06 16:17:44

标签: sql database oracle11g

有2张桌子。表a和b。 A包含msisdn,firstname,secondname,lastname,regdate(注册数据)。表b也有相同的字段。我想比较这两个表,msisdn,firstname和lastname字段。如果表A中的msisdn X的名字为jim,lastname为halpert,并且同一个msisdn X的名字为michael,secondname作为表B中的scott,我需要将这些类型的msisdn作为我的查询结果。两个表和不同名称中具有相同msisdn的那个。如果这些名称(第一个或最后一个)不匹配,则应显示为结果。

如果我没有准确地解释这个场景,我很抱歉。我希望有人理解并回答这个问题。

谢谢:)

3 个答案:

答案 0 :(得分:2)

SELECT A.*, B.* 
FROM TABLEA A
INNER JOIN TABLEB B ON A.MSISDN = B.MSIDN
WHERE A.firstname != B.firstname 
OR A.lastname != B.Lastname

答案 1 :(得分:1)

Select
    *
From
    Table a
join 
    Table2 b on a.msisdn = b.msisdn
where 
    (a.firstname != b.firstname) OR (a.lastname != b.lastname)

答案 2 :(得分:0)

如果您的表没有任何外键,您可以尝试:

SELECT tableA.*, tableB.* 
FROM tableA, tableB
WHERE tableA.col1 != tableB.col1
OR tableA.col2 != tableB.col2

您可以使用任何所需的运算符更改运算符

也许它看起来不那么亲,但对我来说更容易:)