另外一種左右外連線的表示法為:(+)
當(+) 在"="左側時,代表以右側為全量輸出,即為右外連線
當(+) 在"="右側時,代表以左側為全量輸出,即為左外連線
總結一句話時,就是(+)在哪一側,對應的表輸出的未匹配到的資料為空,即為反方面的外連線。
使用(+)有以下限制:
1.(+)操作符只能出現在where子句中,並且不能與outer join語法同時使用。
當使用(+)操作符執行外連線時,如果在where子句中包含有多個條件,則必須在所有條件中都包含(+)操作符
3.(+)操作符只適用於列,而不能用在表示式上。
4.(+)操作符不能與or和in操作符一起使用。
5.(+)操作符只能用於實現左外連線和右外連線,而不能用於實現完全外連線。
note
在外連線中使用 and 條件(非關聯條件),oracle 會先執行外連線,然後以外連線的結果為基礎,執行 and 條件的過濾,而不是在原表基礎上執行and條件過濾。
-- 生成資料create table ta(id number,name varchar2(10));
create table tb(id number,name varchar2(10));
--相同資料
insert into ta values(1,'ha');
insert into ta values(2,'ha');
insert into ta values(3,'ha');
insert into tb values(1,'ha');
insert into tb values(2,'ha');
insert into tb values(3,'ha');
-- 不同資料
insert into ta values(4,'h4');
insert into tb values(5,'h5');
insert into ta values(6,'h6');
insert into tb values(7,'h7');
commit;
author: halberd.lee
created: 2020-05-26 tue 16:06
validate
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內連線 外連線
表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 內連線,外連線
誰能詳細解釋一下oracle的內連線和外連線。一般的相等連線 select from a,b where a.id b.id 這個就屬於內連線。對於外連線 oracle中可以使用 來表示,9i可以使用left right full outer join left outer join 左外關聯 se...