当前位置:   article > 正文

MySQL中的内连接和外连接_什么是内连接、外连接?mysql支持哪些外连接?

什么是内连接、外连接?mysql支持哪些外连接?

一、MySQL内连接(INNER JOIN)

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

1.1 基本语法

内连接的基本语法如下:

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;
  • 1
  • 2
  • 3
  • 4

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;
  • 1
  • 2
  • 3
  • 4

结果集:

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;
  • 1
  • 2
  • 3
  • 4
2.1.2 示例

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

SELECT employees.emp_name, departments.dept_name
FROM employees
LEFT OUTER JOIN departments
ON employees.dept_id = departments.dept_id;
  • 1
  • 2
  • 3
  • 4

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;
  • 1
  • 2
  • 3
  • 4
2.2.2 示例

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

SELECT employees.emp_name, departments.dept_name
FROM employees
RIGHT OUTER JOIN departments
ON employees.dept_id = departments.dept_id;
  • 1
  • 2
  • 3
  • 4
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/421337
推荐阅读
相关标签
  

闽ICP备14008679号