MySQL中的内连接和外连接

一、MySQL内连接(INNER JOIN)

内连接,又称为等值连接,是最常见的连接类型。它根据两个(或多个)表中具有相同列值的行来创建一个新的结果表。在内连接中,只有通过连接条件匹配的行才会被包含在结果集中。

1.1 基本语法

内连接的基本语法如下:

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;

1.2 示例

假设我们有两个表:employeesdepartments

employees 表:

emp_idemp_namedept_id
1John1
2Jane1
3Mark2
4Anna2
5Steve3

departments 表:

dept_iddept_name
1HR
2IT
3Operations

使用内连接查询员工及其所属部门:

SELECT employees.emp_name, departments.dept_name
FROM employees
INNER JOIN departments
ON employees.dept_id = departments.dept_id;

结果集:

emp_namedept_name
JohnHR
JaneHR
MarkIT
AnnaIT
SteveOperations

二、MySQL外连接(OUTER JOIN)

外连接用于获取在至少一个表中存在的行,即使在另一个表中没有匹配的行。MySQL支持左外连接(LEFT OUTER JOIN)和右外连接(RIGHT OUTER JOIN)。

2.1 左外连接(LEFT OUTER JOIN)

左外连接会返回左表(table1)的所有行,以及与之匹配的右表(table2)的行。如果在右表中没有匹配的行,则结果集中将显示NULL值。

2.1.1 基本语法

左外连接的基本语法如下:

SELECT column_name(s)
FROM table1
LEFT OUTER JOIN table2
ON table1.column_name = table2.column_name;
2.1.2 示例

使用左外连接查询员工及其所属部门,并显示没有分配部门的员工:

SELECT employees.emp_name, departments.dept_name
FROM employees
LEFT OUTER JOIN departments
ON employees.dept_id = departments.dept_id;

2.2 右外连接(RIGHT OUTER JOIN)

右外连接会返回右表(table2)的所有行,以及与之匹配的左表(table1)的行。如果在左表中没有匹配的行,则结果集中将显示NULL值。

2.2.1 基本语法

右外连接的基本语法如下:

SELECT column_name(s)
FROM table1
RIGHT OUTER JOIN table2
ON table1.column_name = table2.column_name;
2.2.2 示例

使用右外连接查询所有部门及其员工,包括没有员工的部门:

SELECT employees.emp_name, departments.dept_name
FROM employees
RIGHT OUTER JOIN departments
ON employees.dept_id = departments.dept_id;
  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值