Oracle
 sql >> Base de données >  >> RDS >> Oracle

Pourquoi ne pouvez-vous pas utiliser OR ou IN avec une opération OUTER JOIN ?

Au fait, vous avez défini une jointure interne ici.

En ayant une clause contre la table de droite, elle doit répondre aux deux critères.

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

Utilisez INNER JOIN ou déplacez ce WHERE vers la clause ON en tant que AND