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

¿Por qué no puede usar OR o IN con una operación OUTER JOIN?

Por cierto, ha definido una unión interna allí.

Al tener una cláusula contra la mesa de la derecha, debe cumplir con ambos criterios.

SELECT p.Name, a.Attribute
FROM People p
LEFT OUTER JOIN Attributes a
ON p.PersonID = a.PersonID 
WHERE a.Attribute IN ('Happy','Grouchy') -- This means that the right side must exist also
AND p.person_id IN ('Elmo', 'Oscar') 

Utilice INNER JOIN o mueva este WHERE a la cláusula ON como AND