Oracle
 sql >> Database >  >> RDS >> Oracle

Oracle outer join con condizione di filtro nella seconda tabella

No, non esiste alcuna condizione in base alla quale i set di risultati saranno diversi.

Ma la tua ipotesi "a.id = b.id(+) non ha significato" non è corretto al 100%. ha un significato, perché definisce il join, altrimenti sarebbe un prodotto cartesiano di aeb con tutte le righe da aeb.name ='XYZ'.

Ciò che non ha effetto è il (+) , perché l'affermazione è "semanticamente" errata. Non ha senso unire all'esterno su id ma unire su nome.

Di solito si vuole qualcosa del genere:

select  * from a,b where a.id =b.id(+) and b.name(+) = 'XYZ';

Breve esempio su http://www.sqlfiddle.com/#!4/d19b4/ 15