Questa è la notazione specifica di Oracle per un OUTER JOIN, perché il formato ANSI-89 (usando una virgola nella clausola FROM per separare i riferimenti alle tabelle) non standardizzava i join OUTER.
La query verrebbe riscritta nella sintassi ANSI-92 come:
SELECT ...
FROM a
LEFT JOIN b ON b.id = a.id
Questo link spiega bene la differenza tra i JOIN.
Va inoltre notato che anche se il (+)
funziona, Oracle consiglia di non usandolo:
Oracle consiglia di utilizzare FROM
clausola OUTER JOIN
sintassi anziché l'operatore di join Oracle. Query di join esterno che utilizzano l'operatore di join Oracle (+)
sono soggetti alle seguenti regole e restrizioni, che non si applicano al FROM
clausola OUTER JOIN
sintassi: