關聯的兩張表,當資料少的那張要在資料多的那張表字段裡,顯示為null時,就需要使用外連線。
在講外連線之前,先舉例介紹內連線,也就是一般的相等連線。
select * from a, b where a.id = b.id;
對於外連線,oracle中可以使用「(+)」來表示,9i可以使用left/right/full outer join,下面將配合例項一一介紹。
1. 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的員工記錄。
2. 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;
結果為:所有員工及對應部門的記錄,包括沒有任何員工的部門記錄。
3. 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中的外連線
關聯的兩張表,當資料少的那張要在資料多的那張表字段裡,顯示為null時,就需要使用外連線。在講外連線之前,先舉例介紹內連線,也就是一般的相等連線。select from a,b where a.id b.id 對於外連線,oracle中可以使用 來表示,9i可以使用left right full o...
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中的外連線簡單介紹
在講外連線之前,先舉例介紹內連線,也就是一般的相等連線。select from a,b where a.id b.id 對於外連線,oracle中可以使用 來表示,9i可以使 用left right full outer join,下面將配合例項一一介紹。1.left outer join 左外關聯...