Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Dlaczego nie możesz użyć OR lub IN z operacją OUTER JOIN?

Nawiasem mówiąc, zdefiniowałeś tam sprzężenie wewnętrzne.

Mając klauzulę przy prawej tabeli, musi ona spełniać oba kryteria.

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

Użyj INNER JOIN lub przenieś to WHERE do klauzuli ON jako AND



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dodano datę i datę modyfikacji dla audytu tabeli Oracle

  2. Oracle transponując wiersze wartości tekstowych na kolumny

  3. Zalecenia dotyczące obsługi Oracle i SQL Server w tej samej aplikacji ASP.NET z NHibernate

  4. Nie mogę połączyć mojej instancji RDS Oracle z serwerem PHP

  5. Jaki jest najprostszy sposób zdefiniowania zmiennej lokalnej w Oracle?