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

dołącz do warunku ON vs in WHERE

Cóż, to, co nazywasz „równoważnikiem”, nie jest odpowiednikiem sprzężeń zewnętrznych. Weźmy na przykład lewe sprzężenie.

Warunek w DOŁĄCZ:

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

kontra GDZIE:

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

Umieszczenie warunków w klauzuli WHERE skutecznie powoduje, że złączenia INNER łączy, ponieważ klauzula WHERE jest wierszem filtr która jest stosowana po połączenia zostały wykonane.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-12516, TNS:listener nie mógł znaleźć dostępnej obsługi

  2. Oracle:sekwencja MySequence.currval nie jest jeszcze zdefiniowana w tej sesji

  3. Walcząc ze sprężyną SimpleJdbcCall, aby wywołać funkcję Oracle

  4. Jak ustawić nazwy tabel i kolumny z rozróżnianiem wielkości liter w Oracle 11g?

  5. Jak eksportować dane za pomocą Oracle SQL Developer?