有一张表,人员部门表(user_deparment)。多个人员插入多个部门
ex:user
10001
10002
10003
10004
10005
10006;
department:
10001
10002
10003
10004
10005
10006;
这个insert怎么写呢?只能用存储过程吗???

解决方案 »

  1.   

    就是插入这些数据:userid   departmentid
    10001    10001
    10001    10002
    10001    10003
    10001    10004
    10001    10005
    10002    10001
    10002    10002
    10002    10003
    10002    10004
    10002    100015
    ...
      

  2.   

    department与user表有关联字段???
      

  3.   

    你这个情况用sqlldr有点不合适,可以用如下SQL试试:
    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完后再加上这些限制条件。
      

  4.   

    ---复制原表数据
    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