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...