關於oracle外連線的問題

2021-08-22 17:46:33 字數 1020 閱讀 6309

我寫了乙個sql如下:

select *

from storage_market_fetch f,

storage_market_fetch_mat m,

storage_mar_fetch_collect_mat fm

where f.fetch_bill_id = m.fetch_bill_id

and m.mat_info_id = fm.mat_info_id(+)

and f.is_deleted = 0

and f.is_returned = 0

and f.step = 9

and fm.mat_info_id is null

and m.pay_price is not null

我現在需要在fm表中加乙個條件,就是加fm.is_disabled = 0這樣乙個條件,如果直接加在where條件的後面,是不行的,那麼除了先查詢記錄再外連線的這種方法外,還有沒有其他的方法,我這樣寫對不對,請高手指點一下。

select *

from storage_market_fetch f,

storage_market_fetch_mat m,

storage_mar_fetch_collect_mat fm

where f.fetch_bill_id = m.fetch_bill_id

and m.mat_info_id = fm.mat_info_id(+)

and f.is_deleted = 0

and f.is_returned = 0

and f.step = 9

and fm.is_disabled(+) = 0

and fm.mat_info_id is null

and m.pay_price is not null

就是在連線條件中加了and fm.is_disabled(+) = 0的條件,不知道對不對。 

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...

關於外連線

表a 表b 表c 學號 pk 班級 pk 課目id 班級 fk 課目id 不可以為null 課名 課目id 可以為null 查某生課名,可以直接通過表a的課目id,但是該課表id為空時,需要從表b查出課表id,再進行查詢。select a.學號,課名 case when a.課目id is null...

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...