Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Warum können Sie OR oder IN nicht mit einer OUTER JOIN-Operation verwenden?

Dort haben Sie übrigens einen Inner Join definiert.

Durch eine Klausel gegen die rechte Tabelle muss sie beide Kriterien erfüllen.

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

Verwenden Sie entweder INNER JOIN oder verschieben Sie dieses WHERE als AND

in die ON-Klausel