在 SQL 中,可以使用 JOIN 語句來關聯兩個表。有多種類型的 JOIN,如 INNER JOIN、LEFT JOIN、RIGHT JOIN 和 FULL OUTER JOIN。下面是一些示例:
假設我們有兩個表,一個是 employees
表,另一個是 departments
表。employees
表包含員工信息,如 employee_id
、first_name
、last_name
和 department_id
。departments
表包含部門信息,如 department_id
和 department_name
。
使用 INNER JOIN 關聯這兩個表:
SELECT employees.employee_id, employees.first_name, employees.last_name, departments.department_name
FROM employees
INNER JOIN departments ON employees.department_id = departments.department_id;
這將返回一個結果集,其中包含員工 ID、名字、姓氏和部門名稱。只有當員工的 department_id
與部門的 department_id
相匹配時,才會顯示員工記錄。
SELECT employees.employee_id, employees.first_name, employees.last_name, departments.department_name
FROM employees
LEFT JOIN departments ON employees.department_id = departments.department_id;
這將返回一個結果集,其中包含所有員工的記錄。對于那些沒有分配部門的員工(即 department_id
為 NULL),部門名稱將顯示為 NULL。
SELECT employees.employee_id, employees.first_name, employees.last_name, departments.department_name
FROM employees
RIGHT JOIN departments ON employees.department_id = departments.department_id;
這將返回一個結果集,其中包含所有部門的記錄。對于那些沒有員工的部門,員工信息將顯示為 NULL。
SELECT employees.employee_id, employees.first_name, employees.last_name, departments.department_name
FROM employees
FULL OUTER JOIN departments ON employees.department_id = departments.department_id;
這將返回一個結果集,其中包含所有員工和部門的記錄。對于那些沒有分配部門的員工以及那些沒有員工的部門,相應的信息將顯示為 NULL。
注意:并非所有數據庫系統都支持 FULL OUTER JOIN。在某些系統中,可以使用 UNION 或 UNION ALL 將 LEFT JOIN 和 RIGHT JOIN 的結果組合起來,以實現 FULL OUTER JOIN 的效果。