sql >> Databáze >  >> RDS >> Oracle

Jak najít LEFT OUTER JOIN nebo RIGHT OUTER JOIN pomocí ORACLE JOIN (+)

Objasněte prosím, jak správně najít pravé a levé vnější spojení pomocí příkladu

Pokusím se ukázat rozdíl mezi syntaxí vnějšího spojení Oracle a ANSI/ISO syntaxe .

LEVÉ VNĚJŠÍ PŘIPOJENÍ -

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

PRAVÉ VNĚJŠÍ PŘIPOJENÍ -

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

ÚPLNÉ VNĚJŠÍ PŘIPOJENÍ -

Před nativní podporou hash full externaljoin v 11gR1 by Oracle interně převedl FULL OUTER JOIN následujícím způsobem -

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

Podívejte se na toto.



  1. Jak implementovat databázi SQLite pro ukládání bitmapového obrázku a textu?

  2. Nejlepší způsoby, jak zvýšit efektivitu databáze

  3. SQL Vnitřní spojení na vybraných příkazech

  4. Jak funguje BIT_LENGTH() v MariaDB