sql語句中left join、right join、inner join的區別
阿新 • • 發佈:2017-06-18
select http img image ner -s style nbsp color
B表記錄不足的地方均為NULL。
left join(左聯接) 返回包括左表中的所有記錄和右表中聯結字段相等的記錄;
right join(右聯接) 返回包括右表中的所有記錄和左表中聯結字段相等的記錄;
inner join(等值連接) 只返回兩個表中聯結字段相等的行。
我們建立兩個簡單的表A和B,如圖所示:
A: B:
1)left join
我們執行sql語句:select * from A left join B on A.id = B.id;
結果如下:
說明:left join是以A表的記錄為基礎的,A可以看成左表,B可以看成右表,left join是以左表為準的.
換句話說,左表(A)的記錄將會全部表示出來,而右表(B)只會顯示符合搜索條件的記錄(例子中為: A.id = B.id).
B表記錄不足的地方均為NULL。
1)right join
我們執行sql語句:select * from A right join B on A.id = B.id;
結果如下:
說明:right join是以B表的記錄為基礎的,A可以看成左表,B可以看成右表,right join是以右表為準的。
以右表(B)為基礎的,A表不足的地方用NULL填充。
1)inner join
我們執行sql語句:select * from A inner join B on A.id = B.id;
結果如下:
說明:這裏只顯示出了 A.id = B.id的記錄.這說明inner join並不以誰為基礎,它只顯示符合條件的記錄。
sql語句中left join、right join、inner join的區別