對於外連線,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 左右連線外連線的理解
建立測試資料 create table a id number create table b id number insert into a values 1 insert into a values 2 insert into a values 3 insert into b values 1 i...
輕鬆搞定正規表示式 好理解好記憶
正規表示式專案經常用到,但是大部分程式設計師用的時候都是網上去找,很少有能自己寫出來,為什麼會這樣呢?其實原因我不大家也想到了,那玩意兒太難記了,咱一看,感覺沒有規律,要想記住甚是傷腦袋,現在好了,下面總結成一首打油詩,就好記多了,廢話不多說了,直接上菜了,正則其實也勢利,削尖頭來把錢揣 指開始符號...
oracle的左右連線語句
工作以來,碰到的第乙個oracle區別於sql server的地方,就是oracle的左右連線語句。這東西,還是舉個栗子來形容比較形象。乙個使用者表users user id,address 手機號碼表msisdns user id,msisdn 對於每乙個使用者,使用者表都有對應的id對應,但並不...