2017-04-05 74 views
0

我有兩個表的記錄...鏈接兩個表來查找記錄僅如果沒有另一個表

tbl1 
ClientNo  ApptID   Status 
1234   1    121 
1234   2    121 
1235   1    121 
1235   2    121 


tbl2 
ClientNo  Valid   
1234   17 

我期待選擇TBL1所有客戶 - 其中ApptID = 2 ,而tbl2中沒有相應的記錄。所以根據這些數據,1234在tbl2中有記錄,那麼不需要在最終結果中顯示它。

我很想看到這是最終的結果:

ClientNo  ApptID   Status 
1235   2    121 

回答

1

你可以試試下面的查詢:

SELECT t1.* 
FROM tbl1 AS t1 
WHERE t1.ApptID = 2 AND 
     NOT EXISTS (SELECT 1 
        FROM tbl2 AS t2 
        WHERE t1.ClientNo = t2.ClientNo) 
+0

此致首先是做到了。謝謝。 – BobSki

1

你需要比較聯接字段設置爲NULL

SELECT t1.* FROM tbl1 t1 
    LEFT JOIN tbl_2 t2 
    ON t1.ClientNo = t2.ClientNo 
    WHERE t1.ApptID=2 AND t2.ClientNo IS NULL 

或使用子查詢如下:

SELECT * FROM tbl1 
    WHERE ApptID=2 AND ClientNo NOT IN (SELECT ClientNo FROM tbl_2) 
+0

在'WHERE'關鍵字附近語法錯誤附近獲取語法錯誤。' – BobSki

+0

我已經更新了答案並添加了一種方法 – MaxZoom

1

請嘗試以下答案:

SELECT * FROM TBL2 T2 
RIGHT JOIN 
(SELECT * FROM TBL1 WHERE ApptID = 2) TBL T1 
ON T2.ClientNo = T1.ClientNo 
WHERE T2.ClientNo IS NOT NULL; 
相關問題