1. 程式人生 > >sql語句中left join、right join、inner join的區別

sql語句中left join、right join、inner join的區別

select http img image ner -s style nbsp color

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的區別