Oracle 內連線,外連線

2021-08-22 09:23:27 字數 1314 閱讀 8377

誰能詳細解釋一下oracle的內連線和外連線。

一般的相等連線:

select * from a, b where a.id = b.id;

這個就屬於內連線。

對於外連線:

oracle中可以使用「(+) 」來表示,9i可以使用left/right/full outer join  

left outer join:左外關聯  

select e.last_name, e.department_id, d.department_name  

from employees e  

left outer join departments d  

on (e.department_id = d.department_id);  

等價於  

select e.last_name, e.department_id, d.department_name  

from employees e, departments d  

where e.department_id=d.department_id(+)  

結果為:所有員工及對應部門的記錄,包括沒有對應部門編號department_id的員工記錄。  

right outer join:右外關聯  

select e.last_name, e.department_id, d.department_name  

from employees e  

right outer join departments d  

on (e.department_id = d.department_id);  

等價於  

select e.last_name, e.department_id, d.department_name  

from employees e, departments d  

where e.department_id(+)=d.department_id  

結果為:所有員工及對應部門的記錄,包括沒有任何員工的部門記錄。  

full outer join:全外關聯  

select e.last_name, e.department_id, d.department_name  

from employees e  

full outer join departments d  

on (e.department_id = d.department_id);  

結果為:所有員工及對應部門的記錄,包括沒有對應部門編號department_id的員工記錄和沒有任何員工的部門記錄。

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外連線,左外連線,右外連線,內連線簡析

內連線即普通等值連線 select e.ename,e.job,e.sal,d.dname from emp e inner join dept d on e.deptno d.deptno where e.sal 2000 select e.ename e.job,e.sal d.dname fr...

oracle連線查詢 內連線 外連線 全連線

oracle 中的連線可分為,內連線 inner join 外連線 outer join 全連線 full join 不光是oracle 其他很多的資料庫也都有這3 種連線查詢方式 內連線inner join 這是我們經常用的查詢方式,比如select from a,b where a.field1...