試圖瞭解在http://www.orafaq.com/papers/sqltiptr.pdfSQL - 從三個不相關的表在一個查詢中獲取數據
第九尖端組合三個單獨的查詢到一個:
select name from emp where emp_no=1234;
select name from dpt where dot_no=10;
select name from cat where emp_no='RD';
select e.name, d.name, c.name
from cat c, dpt d, emp e, dual x
where NVL('x',X.DUMMY)=NVL('X', E.ROWId (+))
and NVL('x',X.DUMMY)=NVL('X', D.ROWId (+))
and NVL('x',X.DUMMY)=NVL('X', C.ROWId (+))
and e.emp_no(+)=1234
and d.dept_no(+)=10
and c.cat_type(+)='RD'
爲什麼我們需要在這些空值的比較查詢?
NVL('x',X.DUMMY)=NVL('X', E.ROWId (+))
and NVL('x',X.DUMMY)=NVL('X', D.ROWId (+))
and NVL('x',X.DUMMY)=NVL('X', C.ROWId (+))
這給外部聯接的東西加入...它看起來有點有趣 – Randy