dramagame
2014-11-26 10:02
采纳率: 0%
浏览 1.6k

sql语句问题。求语句,求帮忙

有A B两张表里面的字段列名完全一致只有数据不一致。。现在要把A B两张中不同数据插入到A表中。怎么做

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • chenliang_cn_0 2014-11-26 10:58

    insert语句后面加where约束呗

    评论
    解决 无用
    打赏 举报
  • 少主无翼 2014-11-26 12:01

    求差集,oracle提供差集函数(minus),但是mysql就没有,所以得根据数据库区别对待。
    http://www.cnblogs.com/shengtianlong/archive/2010/12/03/1895346.html

    评论
    解决 无用
    打赏 举报
  • macsnow 2014-11-26 12:23

    提供两种思路: 个人建议创建视图要好一些,因为直接插入B中的数据到A表中可能会出现主键冲突
    方法1 : insert into A(field1,field2,....) select field1, field2 , ... from B where fieldx not in ( select fieldx from A ) ;

    /* 说明: field1,field2, fieldx 代表A、B两张表中相应的字段*/
    方法2 : 建议创建一个视图 view eg: create view as select * from A union select * from B

    评论
    解决 无用
    打赏 举报
  • 破东风 2014-11-26 14:07

    假设有三个字段,field1是主键:
    insert into table1(field1, field2, field3) select field1, field2, field3 from table2 t2 where not exists (select 1 from table1 t1 where t1.field1=t2.filed1) ;

    如果没有主键,就会比较麻烦一些:
    insert into table1(field1, field2, field3) select field1, field2, field3 from table2 t2 where not exists (select 1 from table1 t1 where t1.field1=t2.filed1 and t1.field2=t2.filed2 and t1.field3=t2.filed3) ;

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题