zoukankan      html  css  js  c++  java
  • oracle使用+简写左关联出现的结果集不一致问题

    这是使用(+)的sql语句(已简写)

    select a.id,b.num
    from a,b
    where a.id=b.id(+) and b.num>10
    

    这是使用left join的sql语句

    select a.id,b.num
    from a
    left join b
    on(a.id=b.id and b.num>10)
    

    两个sql的结果不一致,通过查找问题,更改使用+的sql

    select a.id,b.num
    from a,b
    where a.id=b.id(+) and b.num(+)>10
    

    更改后结果一致

    结论:

    oracle使用+简写左关联时,两个表的非关联条件若有(+),则最后的结果行数与主表相同,若两个表的非关联条件没有(+),则这些非关联条件会作用于关联后的结果,对关联后的结果再进行一次条件筛选,最后的结果行数<=主表

  • 相关阅读:
    字符串类型
    数据类型之整型
    数据类型
    两个版本的区别
    变量
    DHCP
    MySQL数据库编译及入门
    NFS网络文件系统
    Rsync 数据同步
    互联网数据分享平台
  • 原文地址:https://www.cnblogs.com/mlr-wjy/p/12048513.html
Copyright © 2011-2022 走看看