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

Jak znaleźć LEFT OUTER JOIN lub RIGHT OUTER JOIN z ORACLE JOIN (+)

Wyjaśnij, jak prawidłowo znaleźć prawe i lewe sprzężenie zewnętrzne na przykładzie

Spróbuję pokazać różnicę między składnią sprzężenia zewnętrznego Oracle i Składnia ANSI/ISO .

LEWE ZŁĄCZENIE ZEWNĘTRZNE -

SELECT e.last_name,
  d.department_name
FROM employees e,
  departments d
WHERE e.department_id = d.department_id(+);

SELECT e.last_name,
  d.department_name
FROM employees e
LEFT OUTER JOIN departments d
ON (e.department_id = d.department_id);

PRAWE ZŁĄCZENIE ZEWNĘTRZNE -

SELECT e.last_name,
  d.department_name
FROM employees e,
  departments d
WHERE e.department_id(+) = d.department_id;

SELECT e.last_name,
  d.department_name
FROM employees e
RIGHT OUTER JOIN departments d
ON (e.department_id = d.department_id);

PEŁNE ZŁĄCZENIE ZEWNĘTRZNE -

Przed natywną obsługą skrótu pełnego zewnętrznego łączenia w 11gR1, Oracle wewnętrznie przekonwertowało FULL OUTER JOIN w następujący sposób -

SELECT e.last_name,
  d.department_name
FROM employees e,
  departments d
WHERE e.department_id = d.department_id(+)
UNION ALL
SELECT NULL,
  d.department_name
FROM departments d
WHERE NOT EXISTS
  (SELECT 1 FROM employees e WHERE e.department_id = d.department_id
  );

SELECT e.last_name,
  d.department_name
FROM employees e
FULL OUTER JOIN departments d
ON (e.department_id = d.department_id);

Spójrz na to.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ODP.NET Oracle.ManagedDataAcess losowe błędy ORA-12570

  2. Funkcja ATAN2() w Oracle

  3. Wykonaj SQL z pliku wsadowego

  4. cd:-M:nieprawidłowa opcja

  5. Zapytanie o nazwy kolumn z tabeli od innego użytkownika