Oracle的三種連線使用場景
阿新 • • 發佈:2018-12-21
一、內連線Inner Join。
某些情況內連線和直接多表查詢等效 select * from D inner join E on D.f=E.a 等效 select * from D,E where D.f=E.a
內連線查詢只能夠查詢出符合條件的記錄,但是不符合條件的記錄時無法查詢出來的 。
select * from dept inner join employee on dept.deptid=employee.deptid
select * from dept,emp where dept.dtid=emp.dtid
二、外連線Outer Join。
外連線具體分為右外連線right outer join和左外連線left outer join。
例如:有2個表,一個職工表和部門表,一個部門下可以有同時多個職工,但是一個職工只能屬於一個部門,所以部門和職工是一對多的關係
- 如果要進行職工表和部門表的關聯查詢,要求查詢出所有的部門資訊,左連線就能夠查詢出結果。左連線其實就是以left join前面的表為主表,即使有些記錄關聯不上,後面的表對應資料為空,但是主表的資訊還是能夠查詢出來的。
select * from dept left outer join emp on dept.dtid=emp.dtid
2.如果要進行職工表和部門表的關聯查詢,要求查詢所有的職工資訊,右連線就能夠查詢出結果。右連線就是以right join後面的表為主表,即使有些記錄關聯不上,前面的表對應資料為空,但是主表的資訊能夠查詢出來
select * from dept right outer join emp on dept.dtid=emp.dtid
總結一下,外連線就是在不能完全關聯情況下,把需要的部分資訊查詢出來。
三、全連線Full Join
全連線是左外連線和右外連線查詢結果的並集
select * from dept full join emp on dept.detid=emp.dtid
oracle三種連線的具體概念可以參考我的另外一篇《oracle 內連線、外連線、全連線》