Oracle學習筆記:外連線(+)的用法
阿新 • • 發佈:2018-12-18
Oracle中常用 left join 和 right join 來進行外連線,同時,oracle也支援 (+) 的特殊用法,也是表示外連線,並且總是放在非主表的一方。
例如:
左外連線:
select a.id,b.id
from a
left join b
on a.id = b.id;
等價於:
select a.id, b.id
from a,b
where a.id = b.id(+);
同理,右外連線:
select a.id,b.id
from a
right join b
on a.id = b.id;
等價於:
select a.id, b.id
from a,b
where a.id(+) = b.id;
注意:
1.(+)操作符只能出現在WHERE子句中,並且不能與OUTER JOIN語法同時使用。
2.當使用(+)操作符執行外連線時,如果在WHERE子句中包含有多個條件,則必須在所有條件中都包含(+)操作符。
3.(+)操作符只適用於列,而不能用在表示式上。
4.(+)操作符不能與OR和IN操作符一起使用。
5.(+)操作符只能用於實現左外連線和右外連線,而不能用於實現完全外連線。
left/right join 和 (+) 的區別:
1.效率上沒區別
2.left join 可讀性高、功能更全面、通用性強、而且是新標準
3.建議使用left join
END 2018-12-18 22:52:22