MYSQL语句[SQL] delete compulsory from compulsory,zhonghuas wherezhonghuas.`机构`=compulsory.companycode  and 
zhonghuas.`保单`=compulsory.oddnum and 
zhonghuas.`车牌`=compulsory.carnum and
zhonghuas.`发动机`=compulsory.enginenum and
zhonghuas.`车架号`=compulsory.vincode and
zhonghuas.`赔案号`=compulsory.reportsnum and
zhonghuas.`出险时间`=compulsory.dangertime and
zhonghuas.`赔款`=compulsory.pays and
zhonghuas.`按说`=compulsory.paytime影响的数据栏: 11
时间: 0.047ms
这是把2个表中重复记录删除的做法吗,
compulsory表中重复记录删除了吗 能确定吗各位大侠  快用肯定对回答吧

解决方案 »

  1.   

    重复记录:标准是什么
    只能说SQL语句没有问题
      

  2.   

    从你上面SQL的条件看来,你是要所有字段内容都非重复吧?
      

  3.   

    可以从compulsory表中删除,在zhonghuas已经存在的记录。
      

  4.   

    删除compulsory表中满足与zhonghuas 相关条件相同的记录 
      

  5.   

    呵呵,帮你简便了下:
    delete a from compulsory a ,zhonghuas b 
    where crc32(concat(a.`机构`,`保单`,`车牌`,`发动机`,`车架号`,`赔案号`,`出险时间`,`赔款`,`按说`))=
    crc32(concat(b.companycode,b.oddnum,b.carnum,b.enginenum,b.vincode,b.reportsnum,b.dangertime,b.pays,b.paytime));
      

  6.   

    其实,最简单的,就是你删除前先对记录select一下:select * from  compulsory,zhonghuas 
    where 
    zhonghuas.`机构`=compulsory.companycode  and 
    zhonghuas.`保单`=compulsory.oddnum and 
    zhonghuas.`车牌`=compulsory.carnum and 
    zhonghuas.`发动机`=compulsory.enginenum and 
    zhonghuas.`车架号`=compulsory.vincode and 
    zhonghuas.`赔案号`=compulsory.reportsnum and 
    zhonghuas.`出险时间`=compulsory.dangertime and 
    zhonghuas.`赔款`=compulsory.pays and 
    zhonghuas.`按说`=compulsory.paytime;--------------
    select count(*) from  compulsory,zhonghuas 
    where 
    zhonghuas.`机构`=compulsory.companycode  and 
    zhonghuas.`保单`=compulsory.oddnum and 
    zhonghuas.`车牌`=compulsory.carnum and 
    zhonghuas.`发动机`=compulsory.enginenum and 
    zhonghuas.`车架号`=compulsory.vincode and 
    zhonghuas.`赔案号`=compulsory.reportsnum and 
    zhonghuas.`出险时间`=compulsory.dangertime and 
    zhonghuas.`赔款`=compulsory.pays and 
    zhonghuas.`按说`=compulsory.paytime;一般进行关键表数据删除时,我都会先根据delete的条件先进行select,确认结果符合需要了,才进行删除
      

  7.   

    //删除不同表中不重复记录
    DELETE adjustcars #被删除表 
    FROM adjustcars  
    LEFT JOIN adjustcar 
    ON adjustcar.compenId=adjustcars.compenId 
    and adjustcar.LicenseColor=adjustcars.LicenseColor
    and adjustcar.Id=adjustcars.Id
    WHERE adjustcar.compenId IS NULL我利用这个语句来统计删除的是那些重复的记录所以心里一直怕怕
    昨天下午已经发布到服务器上了
    本来一个小事,因为2个新手,拖了2天都没弄好
    现在死活一样了  我计算了很多次很多次了
    以前也测试了很多次是正确的 ,不过还是心虚急了不过后面这个语句好像有问题 统计删除那些记录有问题各位大侠  看看
      

  8.   

    原句DELETE zhonghuas #被删除表 
    FROM zhonghuas  
    LEFT JOIN compulsory ON 
    zhonghuas.`机构`=compulsory.companycode  and 
    zhonghuas.`保单`=compulsory.oddnum and 
    zhonghuas.`车牌`=compulsory.carnum and
    zhonghuas.`发动机`=compulsory.enginenum and
    zhonghuas.`车架号`=compulsory.vincode and
    zhonghuas.`赔案号`=compulsory.reportsnum and
    zhonghuas.`出险时间`=compulsory.dangertime and
    zhonghuas.`赔款`=compulsory.pays and
    zhonghuas.`按说`=compulsory.paytimeWHERE compulsory.id IS NULL 
      

  9.   

    你这个SQL语句,删除是是不重复的!
    也就是删除 zhonghuas 表的记录,这个记录在 compulsory  中没有对应的记录。
      

  10.   


    我学的专业是JAVA 数据库语言不是MS-SQL就是oracle  一看是用MYSQL 我都是到网上搜语句的,太笨呵呵
    你对建议我会虚心接受 谢谢