sql >> Database >  >> RDS >> Oracle

Waarom kunt u OR of IN niet gebruiken met een OUTER JOIN-bewerking?

Je hebt daar trouwens een inner join gedefinieerd.

Door een clausule tegen de rechtertafel te hebben, moet deze aan beide criteria voldoen.

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

Gebruik INNER JOIN of verplaats deze WHERE naar de ON-component als een AND



  1. Query verwijderen werkt niet van Java-toepassing

  2. Tabel kan geen primaire sleutel met 2 velden hebben met auto_increment

  3. SQL Server 2005 - Volgorde van innerlijke joins

  4. Hoe voorkomt SQLParameter SQL-injectie?