SQL連線方式(左連線 右連線 全連線)

2021-08-26 10:24:23 字數 1685 閱讀 4124

1.內連線、左連線、右連線、全連線介紹

內連線僅選出兩張表中互相匹配的記錄.因此,這會導致有時我們需要的記錄沒有包含進來。內部連線是兩個表中都必須有連線欄位的對應值的記錄,資料才能檢索出來。

左連線和右連線都是外部連線,也就是區別於內部連線,它對不滿足連線條件的行並不是象內部連線一樣將資料完全過濾掉,而是保留一部分資料,行數不會減少。

左連線是只要左邊表中有記錄,資料就能檢索出來,而右邊有的記錄必要在左邊表中有的記錄才能被檢索出來

右連線是只要右邊表中有記錄,資料就能檢索出來 ;

全連線則會回返回兩個表中的所有記錄。

2.示例

有兩個表

table1

user_iduser_nameuser_pss

1aaaa

2bbbb

3cccc

table2

user_iduser_power

1111000

2000111

使用sql語句查詢

正常狀態:

select table1.user_id,

table1.user_name,

table2.user_power

from table1,table2

where table1.user_id = table2.user_id

但是這樣檢索到的資料只有兩條:

user_iduser_nameuser_power

1aaa000111

2bbb111000

因為第三條資料在table2中沒有關聯.

這時使用左連線查詢﹕

selecttable1.user_id,table1.user_name,table2.user_power

from table1,table2

where table1.user_id (+)= table2.user_id

就可以得到如下的結果

user_iduser_nameuser_power

1aaa000111

2bbb111000

3ccc(null)

說明﹐左或右連線查詢實際上是指定以哪個表的資料為準﹐而預設(不指定左或右連線)是以兩個表中都存在關鍵列的資料為準。

左連線就是以左邊的表記錄為主,右連線就是以右邊的表記錄為主,完全連線返回兩個表中的所有記錄。

3. sql寫法

內連線inner join:

select msp.name,party.name

from msp join party on party=code

或select msp.name,party.name

from msp inner join party onparty=code

左連線left join :

select msp.name,party.name

from msp left join party on party=code

右連線right join :

select msp.name,party.name

from msp right join party onmsp.party=party.code

全連線(full join):

select msp.name, party.name

from msp full join party onmsp.party=party.code

sql 左連線 右連線 全連線

編號 姓名 1000 張三 2000 李四 3000 王五 test ora1 sql select from b 編號 商品 1000 電視機 2000 錄影機 4000 自行車 test ora1 sql set null 空值 這裡為了顯示方面我把null定義成了 空值 test ora1 s...

oracle 左連線 右連線 全連線

select from tab1 left join tab2 on tab1.id tab2.id 左表全部展示 select from tab1 where tab1.id tab2.id 左表全部展示,放在右表,右表為匹配表,左表全展示 select from tab1 right join ...

內連線,左連線,右連線,全連線

內連線,左連線,右連線,全連線 表t1 表t2 id name passwd id jifen dengji 1 jack jpw 1 20 3 2 tom tpw 3 50 4 1,內連線 如果想把使用者資訊 積分 等級都列出來,那麼一般會這樣寫 普通 select from t1,t2 wher...