oracle中的連接可分為,內連接(inner join)、外連接(outer join)、全連接(full join),不光是Oracle,其他很多的數據庫也都有這3種連接查詢方式
內連接inner join,這是我們經常用的查詢方式,比如select * from A,B where A.field1=B.fIEld2,這樣的連接就是內連接,內連接查詢只能查詢出匹配的記錄,匹配不上的記錄時無法查詢出來的
外連接outer join,可進一步分為左外連接left outer join和右外連接right outer join,具體說一下左外連接和右外連接查詢的特點,有2個表,部門表和職工表,一個部門下可以有多個職工,一個職工只能對應一個部門,所以部門和職工時1對多的關系,設計表如下
部門表dept
deptid deptName
1 開發部
2 財務部
3 人事部
職工表employee
eid deptid eName
1 1 劉德華
2 1 張惠妹
3 5 張學友
比如現在有需求,要進行部門表和職工表的關聯查詢,並要查詢出所有的部門信息,這時候,下面的左連接查詢就能夠查詢出想要的結果,左連接就是以left join前面的表為主表,即使有些記錄關聯不上,主表的信息能夠查詢出來的
select * from dept left outer join employee on dept.deptid=employee.deptid
比如現在有需求,要進行部門表和職工表的關聯查詢,並要查詢出所有的職工信息,這時候,下面的右連接查詢就能夠查詢出想要的結果,右連接就是以right join後面的表為主表,即使有些記錄關聯不上,主表的信息能夠查詢出來
select * from dept right outer join employee on dept.deptid=employee.deptid
總之,外連接就是在關聯不上的時候,把其中的部分信息查詢出來
3.全連接full join,語法為full join ... on ...,全連接的查詢結果是左外連接和右外連接查詢結果的並集,即使一些記錄關聯不上,也能夠把部分信息查詢出來。