有一张表,人员部门表(user_deparment)。多个人员插入多个部门
ex:user
10001
10002
10003
10004
10005
10006;
department:
10001
10002
10003
10004
10005
10006;
这个insert怎么写呢?只能用存储过程吗???
ex:user
10001
10002
10003
10004
10005
10006;
department:
10001
10002
10003
10004
10005
10006;
这个insert怎么写呢?只能用存储过程吗???
10001 10001
10001 10002
10001 10003
10001 10004
10001 10005
10002 10001
10002 10002
10002 10003
10002 10004
10002 100015
...
1.先把user表中的userid列插入user_department表中:
insert into user_deparment(userid)
select userid
from user;2.根据user_department表中的userid与department表中的userid的关系,修改user_department表中userid对应的departmentid列。
update user_deparment up
set departmentid=(
select departmentid
from department d
where d.userid=up.userid
)
注:如果user_department表对userid与departmentid列有主键或非空的限制,请在插入数据前,先去掉这些限制条件,等数据全部insert完后再加上这些限制条件。
create table user_deparment_bk as
select * from user_deparment ---清空数据
truncate table user_deparment
---每个员工插入到不同的部门
insert into user_deparment(userid,deptid)
select userid,deptid from (select distinct userid from user_deparment_bk) a,
(select distinct deptid from user_deparment_bk) b