Моля, изяснете как правилно да намерите дясното и лявото външно съединение с пример
Ще се опитам да покажа разликата между синтаксис за външно присъединяване на 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);
Вижте това.