程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> inner join on, left join on, right join on的區別與介紹,innerjoin

inner join on, left join on, right join on的區別與介紹,innerjoin

編輯:Oracle教程

inner join on, left join on, right join on的區別與介紹,innerjoin


Table A 
aid   adate 
1      a1 
2      a2 
3      a3 
TableB 
bid bdate 
1    b1 
2   b2 
4    b4 
兩個表a,b相連接,要取出id相同的字段 
select * from a inner join b on a.aid = b.bid這是僅取出匹配的數據. 
此時的取出的是: 
1 a1 b1 
2 a2 b2 

那麼left join 指: 
select * from a left join b on a.aid = b.bid 
首先取出a表中所有數據,然後再加上與a,b匹配的的數據 
此時的取出的是: 
1 a1 b1 
2 a2 b2 
3 a3 空字符 

http://hovertree.com/menu/sql/
同樣的也有right join 
指的是首先取出b表中所有數據,然後再加上與a,b匹配的的數據 
此時的取出的是: 
1 a1 b1 
2 a2 b2 
4 空字符 b4 

LEFT JOIN 或 LEFT OUTER JOIN。 
左向外聯接的結果集包括 LEFT OUTER 子句中指定的左表的所有行, 
而不僅僅是聯接列所匹配的行。如果左表的某行在右表中沒有匹配行,則在相關聯的結果集行中右表的所有選擇列表列均為空值 


舉個例子你就能知道了! 

A表(a1,b1,c1)      B表(a2,b2) 
a1   b1   c1       a2    b2 
01   數學 95       01    張三 
02   語文 90       02    李四 
03   英語 80       04    王五 
select A.*,B.* from A 
inner join B on(A.a1=B.a2) 
結果是: 
a1   b1   c1       a2    b2 
01   數學 95       01    張三 
02   語文 90       02    李四 

select A.*,B.* from A 
left outer join B on(A.a1=B.a2) 
結果是: 
a1   b1   c1       a2    b2 
01   數學 95       01    張三 
02   語文 90       02    李四 
03   英語 80       NULL  NULL 

select A.*,B.* from A 
right outer join B on(A.a1=B.a2) 
結果是: 
a1   b1   c1       a2    b2 
01   數學 95       01    張三 
02   語文 90       02    李四 
NULL NULL NULL     04    王五 

select A.*,B.* from A 
full outer join B on(A.a1=B.a2) 
結果是: 
a1   b1   c1       a2    b2 
01   數學 95       01    張三 
02   語文 90       02    李四 
03   英語 80       NULL  NULL 
NULL NULL NULL     04    王五

推薦:http://www.cnblogs.com/roucheng/p/3504463.html

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved