加入两个表 - 显示没有匹配记录的数据

时间:2017-02-01 19:12:11

标签: sql sql-server

我有两张表,我试图加入....我的表格结构看起来像这样...

tbl1
NoClient          ApptDate         Status         
1234              12/22/2016       A
3555              1/23/2017        A
3495              12/23/2016       A


tbl2
NoClient          ApptDate  
1234              12/22/2016
3555              1/24/2017

因此,我尝试在NoClientApptDate上加入这两个表格。

我的目标是查看tbl1中的所有记录 - tbl2ApptDateNoclient

中没有匹配的记录

在这种情况下所需的最终结果

NoClient      AppDate
3555          1/23/2017        
3495          12/23/2016       

NoClient = 3555tbl2中有相应的记录,但ApptDate不一样。 NoClient = 3495并没有相应的记录。

2 个答案:

答案 0 :(得分:2)

您可以使用LEFT OUTER JOIN

Select      T1.NoClient, T1.ApptDate
From        Tbl1    T1
Left Join   Tbl2    T2  On  T1.NoClient = T2.NoClient
                        And T1.ApptDate = T2.ApptDate
Where       T2.NoClient Is Null

或者,您也可以使用WHERE NOT EXISTS

Select  T1.NoClient, T1.ApptDate
From    Tbl1    T1
Where Not Exists
(
    Select  *
    From    Tbl2    T2
    Where   T1.NoClient = T2.NoClient
    And     T1.ApptDate = T2.ApptDate
)

答案 1 :(得分:1)

我认为这就是你要找的东西。

SELECT * FROM Table1

在哪里(不是             (SELECT * FROM Table2

WHERE(Table1.NoClient = Table2.NoClient) AND(Table1.ApptDate = Table2.ApptDate)))