sql比较两个表的不同选择

时间:2014-09-15 17:09:58

标签: tsql

我有这两个表

一:

 ID                                     SystemProductID
 E57AD213-3953-481C-BA2B-4AF8B98A87B6   02188530
 2471F038-2646-4EC2-B245-4AF919901A71   02000099
 3A7D0896-EBB3-4E30-A535-4AF94FE83CCE   02025567

二:

 SystemProductID
 02188530
 02000099
 02460103
 02460101

如何选择其中一些

IsExist SystemProductID ID
true    02188530        E57AD213-3953-481C-BA2B-4AF8B98A87B6  
true    02000099        2471F038-2646-4EC2-B245-4AF919901A71
false   02460103        NULL
false   02460101        NULL

请告诉我该怎么做

完全加入并不适用于我想要的内容

1 个答案:

答案 0 :(得分:2)

以我的思维方式,我总是使用我知道的所有表格中的所有数据行和LEFT JOIN。我一般不喜欢RIGHT JOIN,因为它们对我来说似乎是违反直觉的。完全加入也可以。

因此,我们将所有表格的两行和左边的联接放在表格的第一位,我们就可以了。

SELECT
    CASE
        WHEN t1.SystemProductID IS NULL THEN 'false'
        else 'true'
    END [IsExist]
    ,t2.SystemProductID
    ,t2.ID                                     
FROM TableTwo t2
LEFT JOIN TableOne t1 ON t1.SystemProductID=t2.SystemProductID