获取Mismatch值连接sql中的两个表

时间:2012-06-01 05:11:41

标签: sql join left-join

“TABLE1” ---> boodang_iphone包含--- 3000条记录

“表2” - > boodang_iphonePushtest05302012表包含--- 90条记录

我需要在'boodang_iphonePushtest05302012'比较table1中得到不匹配的值我写这样的查询

SELECT boodang_iphonePushtest05302012.devicetoken 
FROM boodang_iphonePushtest05302012
left outer join boodang_iphone  on 
    boodang_iphone.devicetoken=boodang_iphonePushtest05302012.devicetoken 
where 
    boodang_iphonePushtest05302012.devicetoken != boodang_iphone.devicetoken

我很困惑它是否提供正确的数据或者没有任何人可以指导我使用连接获得不匹配的值

1 个答案:

答案 0 :(得分:1)

此查询为您提供boodang_iphonePushtest05302012但不在boodang_iphone中的所有记录。但是,您需要通过交换表再次运行查询,因此它将为您提供boodang_iphone但不存在boodang_iphonePushtest05302012中的所有记录(相反,您可以使用相同的查询但是通过Right加入表外连接)。然后你应该得到比较的全部结果。

此外,如果您可以将where where更改为

where boodang_iphone.devicetoken IS NULL
然后会好得多。这是因为如果值不匹配,那么它将从第二个表返回NULL值,如果将NULL值与有效数据进行比较,它总是有问题。