From DJ's site

Braindump: OracleJoinSyntax

Oracle offers an IMHO strange (to me) syntax to support joins right in WHERE clauses.

You can interpret the (+) operator like this: "Extend the original result set with NULL rows, if the join condition is not met."

See also:

Inner Join

SELECT *
  FROM A, B
 WHERE A.SOME_FIELD = B.ANOTHER_FIELD -- simple join / equi join: only matching rows

Left outer Join

SELECT *
  FROM A, B
 WHERE A.SOME_FIELD = B.ANOTHER_FIELD(+) -- all rows from A, rows from B on match or NULL otherwise

Right outer Join

SELECT *
  FROM A, B
 WHERE A.SOME_FIELD(+) = B.ANOTHER_FIELD -- all rows from B, rows from A on match or NULL otherwise
Retrieved from http://djlauk.de/index.php/Braindump/OracleJoinSyntax
Page last modified on January 17, 2010, at 01:53 PM