我試圖制定一個SQL FULL OUTER JOIN,它包括表A和表B中的所有值,但不包括它們之間通用的值。忽略常見記錄的SQL外部聯接
我已經在網上搜索,並偶然發現了下面的SQL代碼:
SELECT * FROM TableA
FULL OUTER JOIN TableB
ON TableA.name = TableB.name
WHERE TableA.id IS null
OR TableB.id IS null
哪位能像這樣來說明:
我不知道我理解的IS null
部分。 SQL是否可以通過簡單地將以下內容陳述爲WHERE
條件來執行? :
我不明白的是,根據維恩圖,你會想要在TableA和TableB中的值,但是你不想要在兩者中都是常見的值。我不明白null與我看到的 – 2013-02-10 19:52:18
有什麼關係!假設您從TableA中選擇一列,從TableB中選擇一列。這意味着你的結果集是一個包含兩列的表格。如果你做一個INNER JOIN,那麼兩列都會被填充,但是如果你做了任何一種OUTER JOIN,你會在沒有匹配記錄的列中放入什麼?空值!維基百科文章中的表格應該可以幫助您將其視覺化:http://en.wikipedia.org/wiki/Outer_join#Outer_joins – 2013-02-10 19:56:56
非常感謝您的解釋! :) – 2013-02-10 20:01:19