oracle中的內連線和外連線區別

2021-09-08 18:16:41 字數 3149 閱讀 9810

表t_user1,t_user2,t_user3,各有id,name兩列 

idname 1

10a 2

20a

id name 1

10b 3

30b

id name 1

10c 4

40c連線分為兩種:內連線與外連線。

a.內連線

內連線,即最常見的等值連線,例:

select

fromt_user1,t_user2

wheret_user1.id = t_user2.id結果

idname id

name 1

10a 1

10bb.外連線

外連線分為左外連線,右外連線和全外連線。

1.左外連線left outer join 或者 left join

左外連線就是在等值連線的基礎上加上主表中的未匹配資料,例:

select*

fromt_user1 

leftouterjoint_user2

ont_user1.id = t_user2.id

oracle 支援另一種寫法

select

fromt_user1 ,t_user2

wheret_user1.id=t_user2.id(+)

結果:

idname id

name 1

10a 1

10b 2

20a三個表做左外連線

select*

fromt_user1

leftouterjoint_user2

ont_user1.id=t_user2.id

leftouterjoint_user3

ont_user1.id=t_user3.id

oracle 支援的另外一種寫法

select*

fromt_user1,t_user2,t_user3

wheret_user1.id=t_user2.id(+)

andt_user1.id=t_user3.id(+)

結果:

idname id

name id

name 1

10a 1

10b 1

10c 2

20a2.

右外連線right outer join 或者 right join

右外連線是在等值連線的基礎上加上被連線表的不匹配資料

select*

fromt_user1

rightouterjoint_user2

ont_user1.id=t_user2.id

oracle支援的另一種寫法

select*

fromt_user1,t_user2

wheret_user1.id(+)=t_user2.id

結果:

idname id

name 1

10a 1

10b 3

30b3.全外連線full outer join 或者 full join

全外連線是在等值連線的基礎上將左表和右表的未匹配資料都加上

select

fromt_user1

fullouterjoint_user2

ont_user1.id=t_user2.id

全外連線的等價寫法,對同一表先做左連線,然後右連線

selectt_user1.*,t_user2.*

fromt_user1

leftouterjoint_user2

ont_user1.id = t_user2.id

union

selectt_user1.*,t_user2.*

fromt_user2

leftouterjoint_user1

ont_user1.id = t_user2.id

結果:

id name id

name 1

10a 1

10b 2

20a 3

30b

就總結這麼多吧。後面遇到再接著寫。

oracle內連線 外連線

表testa,testb,testc,各有a,b兩列 a b001 10a002 20a a b 001 10b 003 30b a b001 10c004 40c 連線分為兩種 內連線與外連線。a 內連線 內連線,即最常見的等值連線,例 select fromtesta,testb wherete...

Oracle 內連線,外連線

誰能詳細解釋一下oracle的內連線和外連線。一般的相等連線 select from a,b where a.id b.id 這個就屬於內連線。對於外連線 oracle中可以使用 來表示,9i可以使用left right full outer join left outer join 左外關聯 se...

oracle表內連線和外連線

表內連線和外連線 select from emp a,emp b where a.empno b.mgr order by a.empno 聯絡 查詢king手下是誰 內連線 select emp.empno,emp.ename,dept.dname from emp inner join dept...