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

Как да намерите LEFT OUTER JOIN или ДЯСНО OUTER JOIN с ORACLE JOIN (+)

Моля, изяснете как правилно да намерите дясното и лявото външно съединение с пример

Ще се опитам да покажа разликата между синтаксис за външно присъединяване на Oracle и ANSI/ISO синтаксис .

ЛЯВО ВЪНШНО ПРИЕДИНЕНИЕ -

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

ДЯСНО ВЪНШНО ПРИСЪЕДИНЕНИЕ -

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

ПЪЛНО ВЪНШНО ПРИСЪЕДИНЕНИЕ -

Преди естествената поддръжка на хеш пълно външно присъединяване в 11gR1, Oracle вътрешно ще конвертира FULL OUTER JOIN по следния начин -

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

Вижте това.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Spring Batch ORA-08177:не може да се сериализира достъпът за тази транзакция при изпълнение на едно задание, СЕРИАЛИЗИРАНО ниво на изолация

  2. Изберете стойност на xml елемент в Oracle

  3. Паралелен мениджър на Oracle

  4. HikariCP:Какви изчаквания на ниво база данни трябва да се имат предвид, за да се зададе maxLifetime за Oracle 11g

  5. Oracle намери ограничение