我使用SQL Server 2012的SQL服務器 - 需要加入其中,但不等於
我知道該怎麼做內部連接這給一個地方有一個匹配。 我還需要獲取不匹配的記錄。
什麼是最好的方法。我想我可以做一個左連接和一個內連接,然後得到那些留下的。想知道最好和最乾淨的方法是什麼。
如上所述,我已經在做內連接,但也需要顯示沒有匹配的記錄。
我使用SQL Server 2012的SQL服務器 - 需要加入其中,但不等於
我知道該怎麼做內部連接這給一個地方有一個匹配。 我還需要獲取不匹配的記錄。
什麼是最好的方法。我想我可以做一個左連接和一個內連接,然後得到那些留下的。想知道最好和最乾淨的方法是什麼。
如上所述,我已經在做內連接,但也需要顯示沒有匹配的記錄。
您可能正在尋找外連接或外連接。
OUTER JOIN
SELECT *
FROM tableA a
FULL OUTER JOIN tableB b
ON a.column = b.column
OUTER JOIN除外
SELECT *
FROM tableA a
FULL OUTER JOIN tableB b
ON a.column = a.column
WHERE a.column IS NULL OR b.column IS NULL
本答案中的圖表取自於此非常有用的article。
圖片不見了 –
如果你想從兩個表中獲取值,你可以使用全外連接,並採取具有一個側面爲空記錄:
select a.*, b.* from tableA a
full outer join tableB b on a.col = b.col
where a.col is null or b.col is null
顯然,這種方式對於任何一個表或其他所有的值將爲空。
你有任何代碼可以證明你所嘗試過的嗎? –
是否要包含匹配記錄和不匹配記錄的所有記錄?或者你只想要不匹配的記錄? –