zoukankan      html  css  js  c++  java
  • 工作随笔——mysql子查询删除原表数据

    最近在开发的时候遇到一个mysql的子查询删除原表数据的问题。在网上也看了很多方法,基本也是然并卵(不是写的太乱就是效率太慢)。

    公司DBA给了一个很好的解决方案,让人耳目一新。

     DELETE fb.* FROM froadbill.bill fb LEFT JOIN froadbill.refundinfo br ON br.billSeqNo = fb.seq_no WHERE br.billSeqNo IS NULL AND fb.create_time >='20150102000000'  AND fb.create_time <'20150302000000' ;

    froadbill.bill是账单表(约1kw数据),froadbill.refundinfo是退款表(约10w数据)。这条sql是要删除账单表20150102-20150302并且不在退款表的数据。这种写法避免了在sql中使用in或者not in这种低效的语句。

    数据插入也可以使用这种写法:

    INSERT INTO froadbill.bill_history SELECT DISTINCT fb.* FROM froadbill.bill fb LEFT JOIN froadbill.refundinfo br ON br.billSeqNo = fb.seq_no WHERE br.billSeqNo IS NULL AND fb.create_time >='20150102000000'  AND fb.create_time <'20150302000000' ;

      

  • 相关阅读:
    OCP-1Z0-053-V13.02-702题
    OCP-1Z0-053-V13.02-688题
    OCP-1Z0-053-V13.02-691题
    OCP-1Z0-053-V13.02-698题
    OCP-1Z0-053-V13.02-703题
    OCP-1Z0-053-V13.02-701题
    OCP-1Z0-053-V13.02-685题
    memcached 按键查找和批量查找
    catch(CException *e)捕获异常
    char数组最大长度
  • 原文地址:https://www.cnblogs.com/zz0412/p/4828819.html
Copyright © 2011-2022 走看看