有四张表 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
使用子查询关联
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