SQL中的LEFT RIGHT INNER JOIN的區別及學習,僅供參考,如有錯誤,歡迎糾正。 ...
多表連接,在工作中是經常遇見的,現在來講講LEFT、RIGHT和INNER JOIN的用法,用法會了區別就出來了,寫的不專業,只是為了便於理解和學習。
首先講INNER JOIN的使用,INNER JOIN是根據ON的條件過濾出兩表條件相同的數據,如圖的Student表和Course表。
1、查詢“張大大”選修了那些課程(為方便用*查出所有的欄位)
SELECT *
FROM Student s
INNER JOIN Course c
ON s.課程號=c.課程號
WHERE c.姓名=“張大大”;
分析:ON後面的條件是 s.課程號=c.課程號,根據條件,兩個表相同的是“1101”,所以結果就是
LEFT JOIN左連接,顧名思義,向左連接,左表是主表,查詢主表的所有數據,過濾ON條件符合的右表的數據,還是以Student和Course為例。
2、使用LEFT JOIN查詢所有學生的選課情況。
SELECT *
FROM Student s
LEFT JOIN Course c
ON s.課程號=c.課程號;
分析:首先要明白那個是主表也就是左表,這個靠平時接觸的多了就會了,Student表是主表,Course是右表,查詢Student表所有的信息,過濾ON條件相同的Course數據,所以結果是:
RIGHT JOIN 和LEFT JOIN是相反的,右邊是主表,LEFT 和 RGITH JOIN 理解一個就都明白了,主要還是找主表。
3、使用RIGHT JOIN查詢課程的選課情況。
SELECT *
FROM Student s
RIGHT JOIN Course c
ON s.課程號=c.課程號;
分析:主表是Course所以放在右邊,左邊Student則是要過濾的表。所以結果是:
結語:我平常用的INNER JOIN和LEFT JION比較多,RIGHT JOIN和LEFT JOIN 一樣,只是換換位置的問題。