zoukankan      html  css  js  c++  java
  • Oracle学习笔记:外连接(+)的用法

      Oracle中常用 left join 和 right join 来进行外连接,同时,oracle也支持 (+) 的特殊用法,也是表示外连接,并且总是放在非主表的一方。

      例如:

      左外连接:

    select a.id,b.id 
    from a 
    left join b 
    on a.id = b.id;

      等价于:

    select a.id, b.id 
    from a,b
    where a.id = b.id(+);

      同理,右外连接

    select a.id,b.id 
    from a 
    right join b 
    on a.id = b.id;

      等价于:

    select a.id, b.id 
    from a,b
    where a.id(+) = b.id;

      注意:

    1.(+)操作符只能出现在WHERE子句中,并且不能与OUTER JOIN语法同时使用。

    2.当使用(+)操作符执行外连接时,如果在WHERE子句中包含有多个条件,则必须在所有条件中都包含(+)操作符。

    3.(+)操作符只适用于列,而不能用在表达式上。

    4.(+)操作符不能与OR和IN操作符一起使用。

    5.(+)操作符只能用于实现左外连接和右外连接,而不能用于实现完全外连接。

      left/right join 和 (+) 的区别:

     1.效率上没区别

     2.left join 可读性高、功能更全面、通用性强、而且是新标准

     3.建议使用left join


     END 2018-12-18 22:52:22

  • 相关阅读:
    lightoj1140_数位dp
    lightoj1057_状压dp
    lightoj1068_数位dp
    lightoj1018_状压dp
    lightoj1217_简单dp
    lightoj1119_简单状压dp
    lightoj1037_状压dp
    lightoj1110_LCS并输出
    图论算法----最短路
    poj1182 食物链
  • 原文地址:https://www.cnblogs.com/hider/p/10140689.html
Copyright © 2011-2022 走看看