最近在撰寫程式時,越來越覺得SQL語法的重要性。
所以查詢了一下JOIN的寫法,發現 Garadin 大大所說明的內容實在很有用,
因此就把它記下來,以便日後快速查閱。詳情請點我
首先就來看一下下面兩句 SQL 語法有何差異吧!
SELECT A.*
FROM A LEFT JOIN B ON A.ID = B.ID
WHERE B.ID = 4
SELECT A.*
FROM A LEFT JOIN B ON A.ID = B.ID AND B.ID = 4
原先乍看之下,覺得兩者其實沒什麼不同!後來發現我錯了..
以第一句來說,其執行步驟是先做 LEFT JOIN 後,針對 B.ID = 4 的條件做過濾
而第二句則是針對 A 與 B 資料表做 LEFT JOIN 的同時,
當 B.ID = 4 的情況下,列出所有 A 資料表與 B.ID = 4 做 LEFT JOIN 的所有結果!
此兩者的差異可說非常大,雖然查詢的結果有可能一樣,但是其觀念差異頗大,因此特別紀錄下來.
沒有留言:
張貼留言