Oracle “(+)” Operator

前端 未结 4 634
礼貌的吻别
礼貌的吻别 2020-11-22 11:56

I am checking some old SQL Statements for the purpose of documenting them and probably enhancing them.

The DBMS is Oracle

I did not understand a statement wh

4条回答
  •  陌清茗
    陌清茗 (楼主)
    2020-11-22 12:31

    That's Oracle specific notation for an OUTER JOIN, because the ANSI-89 format (using a comma in the FROM clause to separate table references) didn't standardize OUTER joins.

    The query would be re-written in ANSI-92 syntax as:

       SELECT ...
         FROM a
    LEFT JOIN b ON b.id = a.id
    

    This link is pretty good at explaining the difference between JOINs.


    It should also be noted that even though the (+) works, Oracle recommends not using it:

    Oracle recommends that you use the FROM clause OUTER JOIN syntax rather than the Oracle join operator. Outer join queries that use the Oracle join operator (+) are subject to the following rules and restrictions, which do not apply to the FROM clause OUTER JOIN syntax:

提交回复
热议问题