假設有a,b兩個表。表a記錄如下:
aid anum
1 a20050111
2 a20050112
3 a20050113
4 a20050114
5 a20050115
表b記錄如下:
bid bname
1 2006032401
2 2006032402
3 2006032403
4 2006032404
8 2006032408
--------------------------------------------
1.left join
sql語句如下:
select * from a
left join b
on a.aid = b.bid
結果如下:
aid anum bid bname
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404
5 a20050115 null null
(所影響的行數為 5 行)
結果說明:
left join是以a表的記錄為基礎的,a可以看成左表,b可以看成右表,left join是以左表為準的.
換句話說,左表(a)的記錄將會全部表示出來,而右表(b)只會顯示符合搜尋條件的記錄(例子中為: a.aid = b.bid).
b表記錄不足的地方均為null.
--------------------------------------------
2.right join
sql語句如下:
select * from a
right join b
on a.aid = b.bid
結果如下:
aid anum bid bname
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404
null null 8 2006032408
(所影響的行數為 5 行)
結果說明:
仔細觀察一下,就會發現,和left join的結果剛好相反,這次是以右表(b)為基礎的,a表不足的地方用null填充.
--------------------------------------------
3.inner join
sql語句如下:
select * from a
innerjoin b
on a.aid = b.bid
結果如下:
aid anum bid bname
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404
結果說明:
很明顯,這裡只顯示出了 a.aid = b.bid的記錄.這說明inner join並不以誰為基礎,它只顯示符合條件的記錄.
--------------------------------------------
ps:
left join操作用於在任何的 from 子句中,組合**表的記錄。使用 left join 運算來建立乙個左邊外部聯接。左邊外部聯接將包含了從第乙個(左邊)開始的兩個表中的全部記錄,即使在第二個(右邊)表中並沒有相符值的記錄。
語法:from table1 left join table2 on table1.field1 compopr table2.field2
說明:table1, table2引數用於指定要將記錄組合的表的名稱。
field1, field2引數指定被聯接的字段的名稱。且這些字段必須有相同的資料型別及包含相同型別的資料,但它們不需要有相同的名稱。
compopr引數指定關係比較運算子:"=", "<", ">", "<=", ">=" 或 "<>"。
如果在inner join操作中要聯接包含memo 資料型別或 ole object 資料型別資料的字段,將會發生錯誤
注:left和right是外連線,inner是內連線。
多看看sql的幫助就明白了
資料庫左連線,右連線,內連線
我們來舉個例子。天庭上面有乙個管理系統 管理系統有個主表 主表記錄著各個神仙的基本資訊 我們把它當成表a 還有個表記錄著他們這個神仙的詳細資訊 我們把它當成表b 表a的資訊為 idaname position1李靖 托塔天王 2值年神李丙 四值功曹 3增長天王 四大天王 4青龍孟章神君 四方神錶b的...
資料庫左連線,右連線,內連線,外連線
首先連線有 內連線,外連線 左外,右外 全連線 交集 交叉連線 笛卡爾積 先略兩個表 尷尬,join打錯了,畢竟英語沒有6級 解釋下就是以左邊表id 案例裡面是test1 為基礎和右表id對比,左表有的右表也有就也出來,右表沒有的就null咯,右連線和左連線相反 enh,以右邊表id為基礎和左邊表i...
資料庫 左外連線 右外連線 內連線
資料庫 左外連線 1.左外連線的主表在左邊,即連線兩個表時,保留左表中的不匹配部分,右表的相應項用null 或0 值表示。如圖 表ax 表bx from bx left outer join ax 左表,是指from 句中的左邊的表 bx.on ax.id bx.id 結果如圖 2.右外連線 右表的...