SQL JOIN (数据库的关联查询)
-- 假设我们有两个表:employees 和 departments
-- employees 表包含字段:employee_id, name, department_id
-- departments 表包含字段:department_id, department_name
-- 内连接查询(只返回匹配的记录)
SELECT e.name, d.department_name
FROM employees e
INNER JOIN departments d ON e.department_id = d.department_id;
-- 左连接查询(返回左表的所有记录,即使右表中没有匹配)
SELECT e.name, d.department_name
FROM employees e
LEFT JOIN departments d ON e.department_id = d.department_id;
-- 右连接查询(返回右表的所有记录,即使左表中没有匹配)
SELECT e.name, d.department_name
FROM employees e
RIGHT JOIN departments d ON e.department_id = d.department_id;
-- 全外连接查询(返回左右表中所有的记录,不管是否匹配)
-- 注意:MySQL不直接支持FULL OUTER JOIN,但可以通过UNION来实现
SELECT e.name, d.department_name
FROM employees e
LEFT JOIN departments d ON e.department_id = d.department_id
UNION
SELECT e.name, d.department_name
FROM employees e
RIGHT JOIN departments d ON e.department_id = d.department_id;
这些例子展示了如何在SQL中使用JOIN操作来关联两个表。内连接返回两个表中匹配的记录,左连接返回左表的所有记录加上右表中匹配的记录(如果存在),右连接类似地返回右表的所有记录加上左表中匹配的记录,全外连接则返回两个表中所有的记录,包括匹配和不匹配的记录。需要注意的是,MySQL不直接支持FULL OUTER JOIN,但可以通过UNION来实现全外连接的效果。
评论已关闭