Oracle
 sql >> база данни >  >> RDS >> Oracle

условие за присъединяване ON срещу в WHERE

Е, това, което наричате "еквивалент", не е еквивалент за външни съединения. Да вземем например лявото съединение.

Условие в JOIN:

SELECT * FROM Customers c
LEFT JOIN CustomerAccounts ca ON ca.CustomerID = c.CustomerID AND c.State = 'NY'
LEFT JOIN Accounts a ON ca.AccountID = a.AccountID AND a.Status = 1

спрямо КЪДЕ:

SELECT * FROM Customers c
LEFT JOIN CustomerAccounts ca ON ca.CustomerID = c.CustomerID
LEFT JOIN Accounts a ON ca.AccountID = a.AccountID
WHERE c.State = 'NY'
AND a.Status = 1

Поставянето на условията в клаузата WHERE ефективно прави съединенията INNER се присъединява, тъй като клаузата WHERE е филтър за ред който се прилага след съединяванията са направени.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Импортирайте BLOB (изображение) от оракул в кошер

  2. Oracle:Как ефективно да избирате редове с помощта на списък с ключове

  3. Oracle Blob като img src в PHP страница

  4. DotConnect на DevArt за Oracle срещу ADO.NET доставчик на данни на DataDirect

  5. Oracle:Трябва да избера n реда от всеки k реда на таблица