7種JOIN的實(shí)現(xiàn):
中圖:內(nèi)連接
SELECT employee_id,department_name
FROM employees e JOIN departments d
ON e.department_id
= d.department_id
;
左上圖:左外連接
SELECT employee_id,department_name
FROM employees e LEFT JOIN departments d
ON e.department_id
= d.department_id
;
右上圖:右外連接
SELECT employee_id,department_name
FROM employees e RIGHT JOIN departments d
ON e.department_id
= d.department_id
;
左中圖:
SELECT employee_id,department_name
FROM employees e LEFT JOIN departments d
ON e.department_id
= d.department_id
WHERE d.department_id
IS NULL;
右中圖:
SELECT employee_id,department_name
FROM employees e RIGHT JOIN departments d
ON e.department_id
= d.department_id
WHERE e.department_id
IS NULL;
左下圖:滿外連接
方式1:左上圖 UNION ALL 右中圖
SELECT employee_id,department_name
FROM employees e LEFT JOIN departments d
ON e.department_id
= d.department_id
UNION ALL
SELECT employee_id,department_name
FROM employees e RIGHT JOIN departments d
ON e.department_id
= d.department_id
WHERE e.department_id
IS NULL;
方式2:左中圖 UNION ALL 右上圖
SELECT employee_id,department_name
FROM employees e LEFT JOIN departments d
ON e.department_id
= d.department_id
WHERE d.department_id
IS NULL
UNION ALL
SELECT employee_id,department_name
FROM employees e RIGHT JOIN departments d
ON e.department_id
= d.department_id
;
右下圖:左中圖 UNION ALL 右中圖
SELECT employee_id,department_name
FROM employees e LEFT JOIN departments d
ON e.department_id
= d.department_id
WHERE d.department_id
IS NULL
UNION ALL
SELECT employee_id,department_name
FROM employees e RIGHT JOIN departments d
ON e.department_id
= d.department_id
WHERE e.department_id
IS NULL;