首页 新闻 搜索 专区 学院

oracle

0
悬赏园豆:30 [已解决问题] 解决于 2012-08-27 16:30

有四张表 temp_core_user , temp_dept , core_user , dept,对应的两两表结构一致

加了temp 为新表,未加为旧表

现要实现将旧表core_user的数据加入到新表中temp_core_user,旧表core_user是用户的所有信息,有一列为旧表dept的id.

,新表temp_dept 已有现成的数据与dept中name字段值一致,但id不同,通过name获取新表id在传给新表temp_core_user,现本人写的语句贴出来,希望能够得到答案,新表的temp_dept.id我始终想不出方法获取。

insert into  TEMP_USERINFO (fullname,usercode,Deptid,posid,Phone,Orderno,userid) 
select fullname,usercode,(此处要得到新表temp_dept.id),posid,phone,orderno,u.id from userinfo T inner join TEMP_CORE_USER u on u.USERNAME = T.USERCODE  
 
秋风sao落叶的主页 秋风sao落叶 | 初学一级 | 园豆:44
提问于:2012-08-26 12:56
< >
分享
最佳答案
0

使用子查询关联

insert into  TEMP_USERINFO (fullname,usercode,Deptid,posid,Phone,Orderno,userid) 
select fullname,usercode,u.deptid,posid,phone,orderno,u.id from userinfo T 
inner join (SELECT tu.ID, td.ID deptid
  FROM temp_core_user tu
       LEFT JOIN
       (SELECT td1.temp_deptid, td2.deptid deptid
          FROM temp_dept td1 INNER JOIN dept td2 ON td1.NAME = td2.NAME
               ) td ON tu.deptid = td.ID
) u on u.USERNAME = T.USERCODE  
 
收获园豆:30
acepro | 小虾三级 |园豆:1218 | 2012-08-27 10:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册