当前位置: 首页 > article >正文

MySQL的连接类型

在MySQL中,连接(JOIN)是一种将两个或多个表中的数据行组合在一起的操作。主要有以下几种连接类型:

1. 内连接(INNER JOIN)

也叫等值连接, inner join得出同时存在t1表和t2表的数据集,通俗一点说就是求两个表的交集,只返回两个表中连接条件相匹配的行。

2. 左外连接(LEFT JOIN 或 LEFT OUTER JOIN)

left [outer] join,左连接从左表取出所有记录,与右表匹配。如果没有匹配,以null值代表右边表的列。outer 可以不写,默认情况下不写outer关键字。

返回左表(第一个表)的所有行,即使右表(第二个表)中没有匹配的行。

 

3. 右外连接(RIGHT JOIN 或 RIGHT OUTER JOIN)

right [outer] join,右连接从右表取出所有记录,与左表匹配。如果没有匹配,以null值代表左边表的列。outer 可以不写,默认情况下不写outer关键字。

返回右表(第二个表)的所有行,即使左表(第一个表)中没有匹配的行。 

 

区别

  • 内连接:只返回两个表中都有匹配的行。
  • 左外连接:返回左表的所有行,如果右表没有匹配的行,则结果中右表的部分为NULL。
  • 右外连接:返回右表的所有行,如果左表没有匹配的行,则结果中左表的部分为NULL。

举例

假设有两个表:employeesdepartments

employees 表

departments 表

内连接(INNER JOIN)
SELECT employees.name, departments.name
FROM employees
INNER JOIN departments ON employees.department_id = departments.id;

 结果:

左外连接(LEFT JOIN)
SELECT employees.name, departments.name
FROM employees
LEFT JOIN departments ON employees.department_id = departments.id;

结果:

右外连接(RIGHT JOIN)
SELECT employees.name, departments.name
FROM employees
RIGHT JOIN departments ON employees.department_id = departments.id;

结果:


http://www.kler.cn/a/422206.html

相关文章:

  • SpringMVC中的Handler、HandlerMapping、HandlerAdapter
  • 【青牛科技】D7413 高度集成的功率/电能监控模拟前端(AFE) IC,用于测量电能计量应用
  • 【Docker系列】Docker 中使用 Redis 配置文件的详细指南
  • FcaNet: Frequency Channel Attention Networks论文解读
  • CentOS7 虚拟机 双网卡绑定
  • 爬虫第四篇:Xpath 路径表达式全解析:从网页基础到爬取百度贴吧图片实战
  • protobuf使用说明
  • html+css网页设计马林旅行社移动端4个页面
  • Python Web 开发 FastAPI 入门:从基础架构到框架比较
  • Go 语言函数编程指南:定义、调用技巧与返回值机制
  • 40分钟学 Go 语言高并发:基准测试编写
  • 项目开发规范
  • 论文:IoU Loss for 2D/3D Object Detection
  • 明明的随机数
  • FPGA实战篇(触摸按键控制LED灯)
  • Mock.js的学习使用
  • 5G学习笔记之随机接入
  • 基于Java Springboot校园导航微信小程序
  • 658.找到K个最接近的元素(双指针)
  • 【深度学习】—CNN卷积神经网络 从原理到实现