Vui lòng làm rõ cách tìm phép nối bên phải và bên trái đúng cách bằng một ví dụ
Tôi sẽ thử để chỉ ra sự khác biệt giữa cú pháp nối ngoài của Oracle và Cú pháp ANSI / ISO .
THAM GIA BÊN NGOÀI TRÁI -
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);
THAM GIA ĐÚNG NGƯỜI RA NGOÀI -
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);
THAM GIA NGOÀI TRỜI ĐẦY ĐỦ -
Trước khi có sự hỗ trợ gốc của hash full externaljoin trong 11gR1, Oracle sẽ chuyển đổi nội bộ FULL OUTER JOIN theo cách sau -
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);
Hãy xem cái này.