跪求大神幫幫忙,想了很久,不知道怎么去完成。
有三張表,A、E、F,比如:
表A 表E 表F
EMPLID ACID ACID ACID_PAR EMPLID ACID DECR
01 08 08 01 08 AA
02 09 09 02 10 AA
10 09
03 11 11
其中表E如果表A有對應的ACID_PAR,就用對應的ACID來找表F;比如表A中的EMPLID 03,在表F中沒有對應的,但是結果中也應該顯示“”
最后應該選出結果:
EMPLID ACID DECR
01 08 AA
02 10 AA
03 11
請問應該怎么去寫呢,研究了很久了,寫的要run很久,也不出結果。。。
uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
-- 這個意思 ?
select * from A
left join E on A.acid = E.acid
left join F on A.empid = F.empid;
uj5u.com熱心網友回復:
select a.emplid, a.acid, f.DECRfrom a, e, f
where a.acid = e.acid(+)
and a.emplid = f.emplid(+)
order by a.emplid
uj5u.com熱心網友回復:
一看結果是2個表疊加在一起的 用 union all 。sql 如下 :看看滿不滿足條件(
目測和你說的結果一樣)select F.EMPLID emplid, F.ACID acid, F.DECR decr
from A, E, F
WHERE A.ACID = E.ACID
and E.ACID_PAR is not NULL
and E.ACID = F.ACID
union
select A.EMPLID emplid, A.ACID acid, null decr
from A
where not exists (select 1 from F where A.EMPLID = F.EMPLID)
uj5u.com熱心網友回復:
看不懂這行是怎么連出來的02 10 AA
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/65079.html
標籤:基礎和管理
