oracle 中(+) 號是一種特殊用法,表示外鏈結,可以在左連線和右連線時使用,但是不能用於實現全外連線
left join是以左表的記錄為基礎的,示例中t_a可以看成左表,t_b可以看成右表,它的結果集是t_a表中的全部資料,再加上t_a表和t_b表匹配後的資料。換句話說,左表(t_a)的記錄將會全部表示出來,而右表(t_b)只會顯示符合搜尋條件的記錄。t_b表記錄不足的地方均為null。
例如:select a.a,b.a from a left join b on a.b=b.b;
或select a.a,b.a from a a left outer join b on a.b = b.b;
等價於select a.a,b.a from a,b where a.b = b.b(+);
和left join的結果剛好相反,是以右表(t_b)為基礎的。它的結果集是t_b表所有記錄,再加上t_a和t_b匹配後的資料。 t_a表記錄不足的地方均為null。
select a.a,b.a from a right join b on a.b=b.b;
或select a.a ,b.a from a right outer join b on a.b = b.b;
等價於select a.a,b.a from a,b where a.b (+) = b.b;
左表和右表都不做限制,所有的記錄都顯示,兩表不足的地方均為null。 全外連線不支援(+)寫法。
1、(+)操作符只能出現在where子句中,並且不能與outer join語法同時使用。
2、 當使用(+)操作符執行外連線時,如果在where子句中包含有多個條件,則必須在所有條件中都包含(+)操作符。
3、(+)操作符只適用於列,而不能用在表示式上。
4、(+)操作符不能與or和in操作符一起使用。
5、(+)操作符只能用於實現左外連線和右外連線,而不能用於實現完全外連線。
引用:
Oracle 生成流水號
輔助表 rul sequence 表中資料如圖 輔助儲存過程 proc getseqence create or replace procedure proc getseqence seqcode in varchar2,returnnum out varchar2,messagecode out ...
Oracle 外連線和 號的用法
表 pandaa pandab id name id job parent id 1 panda 1 吃 11 2 kongfu 2 喝 12 3 nuddle 4 睡 13 左外鏈結 左邊表不限制 右邊表等值連線 左面表所有資料那過來,右面表按id等值鏈結,沒值的顯示空值 select from ...
Oracle外連線和「 」號的用法
對於外連線,oracle中可以使用 來表示,9i可以使用left right full outer join,下面將配合例項一一介紹。1.left outer join 左外關聯 select e.last name,e.department id,d.department name from em...