zoukankan      html  css  js  c++  java
  • delete records in table A not in table B

    转)A、B两表,找出ID字段中,存在A表,但是不存在B表的数据。A表总共13w数据,去重后大约3W条数据,B表有2W条数据,且B表的ID字段有索引。

    方法一

      使用 not in ,容易理解,效率低  ~执行时间为:1.395秒~

    1 select distinct A.ID from  A where A.ID not in (select ID from B)

    方法二

      使用 left join...on... , "B.ID isnull" 表示左连接之后在B.ID 字段为 null的记录  ~执行时间:0.739秒~

    1 select A.ID from A left join B on A.ID=B.ID where B.ID is null

      图解

    方法三

      逻辑相对复杂,但是速度最快  ~执行时间: 0.570秒~(感觉这种方式挺好)之前A/B表位置写反了,很明显可以看出为问题所在

    ,在碰到问题可以分一下

    1  select * from  A
    

    2 where (select count(1) as num from B where A.ID = B.ID) = 0

  • 相关阅读:
    MySQL "show users"
    MySQL
    A MySQL 'create table' syntax example
    MySQL backup
    MySQL show status
    Tomcat, pathinfo, and servlets
    Servlet forward example
    Servlet redirect example
    Java servlet example
    How to forward from one JSP to another JSP
  • 原文地址:https://www.cnblogs.com/kakaisgood/p/9168569.html
Copyright © 2011-2022 走看看