zoukankan      html  css  js  c++  java
  • MSSQLSERVER数据库- LEFT JOIN后面跟着WHERE竟变成内联 解决方法

      在LEFT JOIN后面跟着WHERE竟变成内联。百度后看到这个解决方法。

      记录如下:

     select sre.*, co.description 
     from subscribedratingelement sre left outer join custom_options co on sre.locationInCdr=co.optionvalue 
     where co.optionname='LocationInCdr';
     select sre.*, co.description 
     from subscribedratingelement sre left outer join custom_options co 
     on (sre.locationInCdr=co.optionvalue and co.optionname='LocationInCdr');

    第一条SQL是一个左外连接,然后进行where过滤。仔细分析这个SQL会发现,最后的结果不是所期望的,custom_options表中不符合条件的记录本来是以null表示的,由于where中的过滤,导致查询出来的记录为null的部分都没有查询出来。这个左外连接就和内连接没有任何区别了。

    第二个SQL语句就可以满足要求。做连接的时候就过滤了右边的一些记录,这样就算右表不符合条件的左表记录也可以查询出来。

  • 相关阅读:
    UDP最大传输字节
    [bzoj3994] [SDOI2015]约数个数和
    [bzoj3529] [Sdoi2014]数表
    [bzoj3309] DZY Loves Math
    [bzoj2693] jzptab
    [bzoj4407] 于神之怒加强版
    [bzoj3688] 折线统计
    [bzoj2301] [HAOI2011]Problem b
    [bzoj2820] YY的GCD
    [bzoj4559] [JLoi2016]成绩比较
  • 原文地址:https://www.cnblogs.com/cxeye/p/4123396.html
Copyright © 2011-2022 走看看