寻找高手,SQL:informix-->Oracle
这是个多表外连接的问题,这是informix的写法,现在应用要签到Oracle中,总是写不对,表太多了,望高手指教一二
SQL code
select
a.int_id,
a.omc_id,
b.msc_name,
a.timestamp,
a.routeset_id,
c.linkset_id,
a.routeset_id,
a.routeset_priority,
d.national_network_dpc,
b.dest_spc
from
c_hua_MSCServerMTP3SignallingRoute a,
c_hua_msc_info b,
outer c_hua_linkset c,
outer c_hua_SignallingPoint d
where
a.msc_fdn = b.fdn and
a.linkset_index = c.linkset_index and
a.signallingpoint_fdn = d.fdn and
a.msc_fdn = c.msc_fdn
------解决方案--------------------
select
a.int_id,
a.omc_id,
b.msc_name,
a.timestamp,
a.routeset_id,
c.linkset_id,
a.routeset_id,
a.routeset_priority,
d.national_network_dpc,
b.dest_spc
from
c_hua_MSCServerMTP3SignallingRoute a,
c_hua_msc_info b,
full join c_hua_linkset c on a.linkset_index = c.linkset_index and a.msc_fdn = c.msc_fdn
full join c_hua_SignallingPoint d on a.signallingpoint_fdn = d.fdn
where a.msc_fdn = b.fdn ;
------解决方案--------------------
select
a.int_id,
a.omc_id,
b.msc_name,
a.timestamp,
a.routeset_id,
c.linkset_id,
a.routeset_id,
a.routeset_priority,
d.national_network_dpc,
b.dest_spc
from
c_hua_MSCServerMTP3SignallingRoute a,
c_hua_msc_info b,
c_hua_linkset c,
c_hua_SignallingPoint d
where
a.msc_fdn = b.fdn and
a.linkset_index = c.linkset_index and
a.signallingpoint_fdn = d.fdn and
a.msc_fdn = c.msc_fdn
------解决方案--------------------
从你写的sql来看,一a表为主表,可以把a的所有数据选出来。其他的有有没有数据都可以的。
select
a.int_id,
a.omc_id,
b.msc_name,
a.timestamp,
a.routeset_id,
c.linkset_id,
a.routeset_id,
a.routeset_priority,
d.national_network_dpc,
b.dest_spc
from
c_hua_MSCServerMTP3SignallingRoute a,
left outer join c_hua_msc_info on b a.msc_fdn = b.fdn
left outer join c_hua_linkset c on a.linkset_index = c.linkset_index
left outer join outer c_hua_SignallingPoint d on a.signallingpoint_fdn = d.fdn