zoukankan      html  css  js  c++  java
  • NOT IN 和 OR 的SQL语句优化

    NOT IN 的优化:

    例如:

    select ID,name from Table_A where ID not in (select ID from Table_B)

    这句是最经典的not in查询了。改为表连接代码如下

    将 NOT IN 改为 表连接 的方式进行优化

    网上有篇帖子这样的

    select 
        Table_A.ID,
        Table_A.name 
        from Table_A 
        left join Table_B on Table_A.ID=Table_B.ID and Table_B.ID is null

    但是。我试了不管用,条件没有过滤掉。

    后来我把这个条件加在后边就可以了。(可能是我SQL语句写错了?,反正以后我还是好几个地方都用的这种方式)

    select 
        Table_A.ID,
        Table_A.name 
        from Table_A 
        left join Table_B on Table_A.ID=Table_B.ID 
        where 
            Table_B.ID is null    

    其实 我也感觉两种方式一样,但第一个我当时用的确实没过滤出来,(那已经是好几个表关联查询了)。

    OR 的优化:

    IN 和 OR 的优化比较相似

    都采用 关键字 UNION 的方式

    将OR 的多个条件查分为多个查询后使用 UNION 连接为一个临时表就可以了。

    顺带记录下 UNION ALL 和 UNION 的区别。

     UNION ALL 将上下所有的数据 拼到一块。

     UNION  拼到一块后对数据进行过滤去重

  • 相关阅读:
    数据结构_bubble_sort
    数据结构_sfdg(小F打怪)
    数据结构_yjjsj(伊姐姐数字游戏)
    数据结构 queue
    数据结构 Job
    数据结构 happiness
    数据结构_calculator
    js并归排序的思路
    js神秘的电报密码---哈弗曼编码
    js同时获得数组的两个最小值
  • 原文地址:https://www.cnblogs.com/x-ph/p/9378076.html
Copyright © 2011-2022 走看看