insert into a(prd_name,prd_gg,mf_cmp_name,et_price) select distinct prd_name,prd_gg,mf_cmp_name,et_price from b;
如上的sql,我把b表中的数据去重后插入到a表。但是a表里有几条重复数据。我把去重的sql单独执行结果是没有重复。是不是这个组合的问题?

解决方案 »

  1.   

    举例说明,
    prd_name,prd_gg,mf_cmp_name,et_price
    组合有重复?
      

  2.   

    比如
     select distinct prd_name,prd_gg,mf_cmp_name,et_price from b 这条sql单独查询记录数为10。
    那么
    insert into a(prd_name,prd_gg,mf_cmp_name,et_price) select distinct prd_name,prd_gg,mf_cmp_name,et_price from b 执行后a表的记录应该是10条,但是结果却是大于10条,a表插入后有重复数据。a表插入数据前是空表。之前一直都是这样去重倒数据的都没出现这问题。不知道这次为什么会这样。
      

  3.   

    没这么用过,看一下mysql手册中insert into select 的语法
      

  4.   

    既然A表是空的,不如
    drop table a;
    create table a as select distinct prd_name,prd_gg,mf_cmp_name,et_price from b;
    如果这样,还得不到想要的结果,就太诡异了。
      

  5.   

    删除a表,然后新创建a表
    drop table a;
    create table a as select distinct prd_name,prd_gg,mf_cmp_name,et_price from b;
      

  6.   

    不太相信楼主所陈述的问题。建议楼主贴出 create table ..., insert into ..语句,这样别人可以直接创建与你相同的表进行测试。 当然楼主可以先测试一下。
      

  7.   

    如果期望在CSDN上解决,估计你得把有问题的表导出,上传,然后其它网友才能进行模拟分析问题。