a表(paper_code(pk) qst_code(pk) )
b表(Exam_code(pk) qst_code(pk) )
2个表都是联合主键,现在需要把a表的数据复制到b表中,条件是a.paper_code='8',请注意a.paper_code可以有多个重复。
用一条sql语句可以实现吗?怎么写?

解决方案 »

  1.   

    insert into b
    select * from a
    where a.paper_code='8';
    你的AB两个表有没有相同的数据,如果没,就用上面sql
      

  2.   

    insert into b
      select paper_code, qst_code,  from a
      

  3.   

    晕总是丢三落四的.
    insert into b
      select paper_code, qst_code,  from a where paper_code = '8'
      

  4.   

    恩。但是如果A里有与B完全相同的记录被复制到B,这个SQL就会出错了。方便点可以先禁用主键约束,待删除重复记录后,再启用.
      

  5.   

    Insert into b
    Select '一个固定的数值',QST_CODE,MARK From a 
    Where a.Paper_code='8'
    我是这样写的,但是总是有问题,数据库锁住了。
      

  6.   

    insert into b
    select * from a
    where a.paper_code='8'
    and   a.rowid not in(select a.rowid from a,b
    where a.paper_code=b.Exam_code
    and   a.qst_code=b.qst_code
    and   a.=b.);
      

  7.   

    select 'insert into b(Exam_code, qst_code, ) values ('''||paper_code(pk)||''','''||qst_code(pk)||''','''||||''');' from A where a.paper_code='8'
    and   a.rowid not in(select a.rowid from a,b
    where a.paper_code=b.Exam_code
    and   a.qst_code=b.qst_code
    and   a.=b.)