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

Perché non puoi usare OR o IN con un'operazione OUTER JOIN?

A proposito, hai definito un inner join lì.

Avendo una clausola contro il tavolo di destra, deve soddisfare entrambi i criteri.

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') 

Usa INNER JOIN o sposta questo WHERE nella clausola ON come AND