【JOIN】关键字在MySql中的详细使用

news/2025/3/29 21:01:37/

目录

INNER JOIN(内连接)

LEFT JOIN(左连接)

RIGHT JOIN(右连接)

FULL JOIN(全连接)

示例图形化解释JOIN的不同类型

INNER JOIN:

LEFT JOIN:

RIGHT JOIN:

FULL JOIN:


INNER JOIN(内连接)

返回两个表中匹配的行。

表达方式1:

SELECT * 
FROM table1 
INNER JOIN table2 
ON table1.column = table2.column;

表达方式2:

SELECT * 
FROM table1, table2 
WHERE table1.column = table2.column;
LEFT JOIN(左连接)

返回左表中的所有行以及与右表匹配的行。

表达方式1:

SELECT * 
FROM table1 
LEFT JOIN table2 
ON table1.column = table2.column;

表达方式2:

SELECT * 
FROM table1 
LEFT OUTER JOIN table2 
ON table1.column = table2.column;
RIGHT JOIN(右连接)

返回右表中的所有行以及与左表匹配的行。

表达方式1:

SELECT * 
FROM table1 
RIGHT JOIN table2 
ON table1.column = table2.column;

表达方式2:

SELECT * 
FROM table1 
RIGHT OUTER JOIN table2 
ON table1.column = table2.column;
FULL JOIN(全连接)

返回左右表中的所有行。

SELECT * 
FROM table1 
FULL JOIN table2 
ON table1.column = table2.column;
示例图形化解释JOIN的不同类型
INNER JOIN
+----+-------+-----+-------+
| ID | Name  | Age | Grade |
+----+-------+-----+-------+
| 1  | John  | 24  | A     |
| 2  | Alice | 22  | B     |
| 3  | Bob   | 25  | A     |
+----+-------+-----+-------++--------+--------+
| ID     | City   |
+--------+--------+
| 1      | London |
| 2      | Paris  |
| 4      | Berlin |
+--------+--------+After INNER JOIN:+----+-------+-----+-------+--------+--------+
| ID | Name  | Age | Grade | ID     | City   |
+----+-------+-----+-------+--------+--------+
| 1  | John  | 24  | A     | 1      | London |
| 2  | Alice | 22  | B     | 2      | Paris  |
+----+-------+-----+-------+--------+--------+
LEFT JOIN
+----+-------+-----+-------+
| ID | Name  | Age | Grade |
+----+-------+-----+-------+
| 1  | John  | 24  | A     |
| 2  | Alice | 22  | B     |
| 3  | Bob   | 25  | A     |
+----+-------+-----+-------++--------+--------+
| ID     | City   |
+--------+--------+
| 1      | London |
| 2      | Paris  |
| 4      | Berlin |
+--------+--------+After LEFT JOIN:+----+-------+-----+-------+--------+--------+
| ID | Name  | Age | Grade | ID     | City   |
+----+-------+-----+-------+--------+--------+
| 1  | John  | 24  | A     | 1      | London |
| 2  | Alice | 22  | B     | 2      | Paris  |
| 3  | Bob   | 25  | A     | NULL   | NULL   |
+----+-------+-----+-------+--------+--------+
RIGHT JOIN
+----+-------+-----+-------+
| ID | Name  | Age | Grade |
+----+-------+-----+-------+
| 1  | John  | 24  | A     |
| 2  | Alice | 22  | B     |
| 3  | Bob   | 25  | A     |
+----+-------+-----+-------++--------+--------+
| ID     | City   |
+--------+--------+
| 1      | London |
| 2      | Paris  |
| 4      | Berlin |
+--------+--------+After RIGHT JOIN:+----+-------+-----+-------+--------+--------+
| ID | Name  | Age | Grade | ID     | City   |
+----+-------+-----+-------+--------+--------+
| 1  | John  | 24  | A     | 1      | London |
| 2  | Alice | 22  | B     | 2      | Paris  |
| NULL | NULL  | NULL   | NULL    | 4      | Berlin |
+----+-------+-----+-------+--------+--------+
FULL JOIN
+----+-------+-----+-------+
| ID | Name  | Age | Grade |
+----+-------+-----+-------+
| 1  | John  | 24  | A     |
| 2  | Alice | 22  | B     |
| 3  | Bob   | 25  | A     |
+----+-------+-----+-------++--------+--------+
| ID     | City   |
+--------+--------+
| 1      | London |
| 2      | Paris  |
| 4      | Berlin |
+--------+--------+After FULL JOIN:+----+-------+-----+-------+--------+--------+
| ID | Name  | Age | Grade | ID     | City   |
+----+-------+-----+-------+--------+--------+
| 1  | John  | 24  | A     | 1      | London |
| 2  | Alice | 22  | B     | 2      | Paris  |
| 3  | Bob   | 25  | A     | NULL   | NULL   |
| NULL | NULL  | NULL   | NULL    | 4      | Berlin |
+----+-------+-----+-------+--------+--------+

http://www.ppmy.cn/news/1582795.html

相关文章

Apache APISIX 架构浅析

大家从网上肯定看到过关于Apisix性能高的文章,那么到底是如何实现的呢? 本文是分析也是自己学习《OpenResty从入门到实战》及Apisix官方文档的一个笔记 简单分析 先看一下官网的架构图 从图中可以看到APISIX是基于OpenResty与Nginx实现的。 这里需要注意OpenRes…

leetcode450-删除二叉搜索树中的节点

leetcode 450 思路 对于要删除节点的操作,我们首先需要知道删除的节点有哪几种情况 没有要删除的节点删除的节点为叶子节点删除的节点左节点为空 右节点不为空删除的节点做节点不为空 右节点为空删除的节点左右节点都不为空 我们如果查找到当前节点的值是目标值…

如何为在线游戏选择合适的游戏盾?

在当今这个互联网高速发展的时代,在线游戏已经成为许多人日常生活中不可或缺的一部分。然而,随着游戏人数的不断增加,网络安全问题也层出不穷。游戏盾的问世便是为了解决这一系列安全隐患,确保玩家在游戏中能够拥有安全、畅快的体…

Visual Studio(VS)的 Release 配置中生成程序数据库(PDB)文件

最近工作中的一个测试工具在测试多台设备上使用过程中闪退,存了dump,但因为是release版本,没有pdb,无法根据dump定位代码哪块出了问题,很苦恼,查了下怎么加pdb生成,记录一下。以下是具体的设置步…

WEB安全--SQL注入--SQL注入数据包的特征

一、异常的SQL语法结构 特殊符号:包含大量单引号 、双引号 "、分号 ;、注释符(--、#、/* */)等。 例如: OR 11 --、" UNION SELECT null,version()# 逻辑运算符:频繁出现 OR、AND、UNION、SELECT、FROM、WH…

Flutter小白零基础入门到高级项目实战全集

Flutter零基础入门到高级项目实战全集内容如下: Dart入门基础教程16讲、Null safety 、late 关键字、空类型声明符?、非空断言!、required 、Flutter入门基础、Flutter瀑布流布局、Flutter动画、Flutter异步流、GlobalKey 、Flutter国际化、…

OpenCV HighGUI 模块使用指南(Python 版)

用户让我编写一个 HighGUI 模块的使用指南,包括函数的使用和应用场景的实现。首先,我需要回顾 HighGUI 模块的主要功能:图像显示、视频捕获、鼠标和键盘事件。然后,按照用户提供的结构,整理每个部分的函数详解、代码示…

基于springboot的“衣依”服装销售平台(043)

摘要 随着信息互联网购物的飞速发展,一般企业都去创建属于自己的电商平台以及购物管理系统。本文介绍了“衣依”服装销售平台的开发全过程。通过分析企业对于“衣依”服装销售平台的需求,创建了一个计算机管理“衣依”服装销售平台的方案。文章介绍了“衣…