2017-05-29 50 views
2

我有兩個表與主鍵(A.Id),外鍵(EquipmentKey)之間的2個表A和B之間的引用。現在我想要的結果像A.Id,是否它存在於B中還是不存在。SQL Select單個SQL查詢中存在的ID和輸出

這是我正在嘗試的查詢。單個查詢可以輕鬆實現嗎? 下面的查詢不起作用。我得到錯誤T.Id無法找到。

select 
    A.Id, 
    ExistsInB = CASE 
        WHEN EXISTS(SELECT 1 FROM B WHERE EquipmentKey = A.Id) THEN 1 
        ELSE 0 
       END 
from A 
+4

這是一個單一的查詢。具有子查詢的查詢仍作爲單個「複雜」查詢進行處理。 –

+0

你問我們,如果你的查詢工作?你沒有嘗試過嗎? – jarlh

+0

是的。但它不起作用。即使列存在,我也無法找到T.Id列。 – ckv

回答

4
SELECT A.Id, (B.EquipmentKey IS NOT NULL) AS ExistsInB 
FROM A LEFT OUTER JOIN B ON (A.Id = B.EquipmentKey) 
+1

這隻適用於DBMS支持布爾值,而'B.EquipmentKey'爲FK時,您必須添加'DISTINCT' – dnoeth