2016-03-01 50 views
0

我在下面有該代碼,返回不在第一個表中的名稱。我的問題是我需要使用第一張桌子上的位置,然後再進行連接。加入兩個表,其中一個表具有特定的值

SELECT * 
FROM Mock A 
    LEFT JOIN List B ON (A.Person = B.Name) 
WHERE A.Person IS NULL OR B.Name IS NULL 
UNION 
SELECT * 
FROM KyleMock A 
    RIGHT JOIN List B ON (A.Person = B.Name) 
WHERE A.Person IS NULL OR B.Name IS NULL 

我需要在第一個表做的是

SELECT * FROM A WHERE Style = 'Turtle' 

我試圖

WHERE (A.Person IS NULL OR B.Name IS NULL) AND Style = 'Turtle' 

這只是限制了我的結果到樣式=「海龜」,不包括其他行。

回答

1

您可以過濾掉的記錄連接條件本身,例如:

SELECT * 
FROM Mock A 
    LEFT JOIN List B ON (A.Person = B.Name AND A.Style = 'Turtle') 
WHERE A.Person IS NULL OR B.Name IS NULL 
UNION 
SELECT * 
FROM KyleMock A 
    RIGHT JOIN DraftList B ON (A.Person = B.Name) 
WHERE A.Person IS NULL OR B.Name IS NULL 
+0

完美,做我需要做=兩個左,右連接或將它只是一個就夠了嗎? –

+0

這取決於需求。這兩個查詢使用不同的表(Mock和KyleMock),所以我不知道KyleMock表是否也有樣式列。 –

相關問題