sql >> Base de Datos >  >> RDS >> Oracle

Unión externa de Oracle con condición de filtro en la segunda tabla

No, no existe ninguna condición bajo la cual los conjuntos de resultados sean diferentes.

Pero su suposición "a.id = b.id(+) no tiene significado" no es 100% correcto. tiene un significado, porque define la unión; de lo contrario, sería un producto cartesiano de a y b con todas las filas de a y b. nombre ='XYZ'.

Lo que no tiene efecto es el (+) , porque la declaración es "semánticamente" incorrecta. No tiene sentido unirse externamente en id sino unirse en nombre.

Por lo general, se busca algo así:

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

Breve ejemplo en http://www.sqlfiddle.com/#!4/d19b4/ 15