当前位置: 代码迷 >> Oracle管理 >> 寻找高手,SQL:informix->Oracle,该怎么解决
  详细解决方案

寻找高手,SQL:informix->Oracle,该怎么解决

热度:56   发布时间:2016-04-24 05:56:51.0
寻找高手,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_spcfrom c_hua_MSCServerMTP3SignallingRoute a,c_hua_msc_info b,outer c_hua_linkset  c,outer c_hua_SignallingPoint dwhere 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
  相关解决方案