搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
小舞很执着
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
【GPT引领前沿】GPT4技术与AI绘图
2
OpenAI最新发布的GPT-4o mini模型对开发者的冲击
3
代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素
4
网络基础设施保护和局域网安全
5
git 设置代理、取消代理、查看代理_git 取消代理
6
Ubuntu22.04配置深度学习环境_ubuntu22.04 深度学习
7
ARM64 kernel exception vectors_el1h和el1t
8
多表关联_db2多表关联with ur加在哪里
9
opencv-yolov8-目标检测
10
解决问题的思路_云澜博客
当前位置:
article
> 正文
超详细mysql left join,right join,inner join用法分析
作者:小舞很执着 | 2024-08-16 16:17:26
赞
踩
超详细mysql left join,right join,inner join用法分析
下面是例子分析
表A记录如下:
aID aNum
1 a20050111
2 a20050112
3 a20050113
4 a20050114
5 a20050115
表B记录如下:
bID bName
1 2006032401
2 2006032402
3 2006032403
4 2006032404
8 2006032408
创建这两个表SQL语句如下:
CREATE TABLE a
aID int( 1 ) AUTO_INCREMENT PRIMARY KEY ,
aNum char( 20 )
)
CREATE TABLE b(
bID int( 1 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
bName char( 20 )
)
INSERT INTO a
VALUES ( 1, 'a20050111' ) , ( 2, 'a20050112' ) , ( 3, 'a20050113' ) , ( 4, 'a20050114' ) , ( 5, 'a20050115' ) ;
INSERT INTO b
VALUES ( 1, ' 2006032401' ) , ( 2, '2006032402' ) , ( 3, '2006032403' ) , ( 4, '2006032404' ) , ( 8, '2006032408' ) ;
实验如下:
1.left join(左联接)
sql语句如下:
SELECT * FROM a
LEFT JOIN b
ON a.aID =b.bID
结果如下:
aID aNum bID bName
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404
5 a20050115 NULL NULL
(所影响的行数为 5 行)
结果说明:
left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的.
换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.aID = B.bID).
B表记录不足的地方均为NULL.
2.right join(右联接)
sql语句如下:
SELECT * FROM a
RIGHT JOING b
ON a.aID = b.bID
结果如下:
aID aNum bID bName
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404
NULL NULL 8 2006032408
(所影响的行数为 5 行)
结果说明:
仔细观察一下,就会发现,和left join的结果刚好相反,这次是以右表(B)为基础的,A表不足的地方用NULL填充.
3.inner join(相等联接或内联接)
sql语句如下:
SELECT * FROM a
INNER JOIN b
ON a.aID =b.bID
等同于以下SQL句:
SELECT *
FROM a,b
WHERE a.aID = b.bID
结果如下:
aID aNum bID bName
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404
结果说明:
很明显,这里只显示出了 A.aID = B.bID的记录.这说明inner join并不以谁为基础,它只显示符合条件的记录.
LEFT JOIN操作用于在任何的 FROM 子句中,
组合来源表的记录。使用 LEFT JOIN 运算来创建一个左边外部联接。左边外部联接将包含了从第一个(左边)开始的两个表中的全部记录,即
使在第二个(右边)表中并没有相符值的记录。
语法:FROM table1 LEFT JOIN table2 ON table1.field1 compopr table2.field2
说明:table1, table2参数用于指定要将记录组合的表的名称。
field1, field2参数指定被联接的字段的名称。且这些字段必须有相同的数据类型及包含相同类型的数据,但它们不需要有相同的
名称。
compopr参数指定关系比较运算符:"=", "<", ">", "<=", ">=" 或 "<>"。
如果在INNER JOIN操作中要联接包含Memo 数据类型或 OLE Object 数据类型数据的字段,将会发生错误。
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/小舞很执着/article/detail/989120
推荐阅读
article
MySQL
&
NaviCat
安装
及配置教程(Windows)【
安装
】_
window
安装
navi...
MySQL
&
NaviCat
安装
及配置教程_
window
安装
navicat
window
安装
navicat
...
赞
踩
article
my
sql
my
malloc
_Mysql源码学习:
内存
管理模块
MEM
_
ROOT
...
MEM
_
ROOT
为
my
sql的
内存
管理模块,用于统一申请和释放
内存
,减少在堆中的
内存
申请操作的次数,以提升性能。基础结构...
赞
踩
article
基于 宝塔
Linux
+
vue3
+
pythonFlask
+
mysql
完整项目方案运行总结...
本文记录了一次基于宝塔
Linux
面板,使用Vue3、Python Flask和MySQL完整项目部署的过程及遇到的问题。...
赞
踩
article
阿里
云
搭建一个web项目(网站)介绍(
Apache
+
php
+
MySQL
)_
php
+
mysql
完整项目...
1、从
阿里
云
购买一个ecs服务器进入
阿里
云
官方平台https://home.console.aliyun.com,选择左...
赞
踩
article
Linux
安装
mysql
报错:失败的软件包是:
mysql
-
community
-
libs
-
8.0
.37...
Linux
安装
mysql
报错:失败的软件包是:
mysql
-
community
-
libs
-
8.0
.37-
1
.el7.x86...
赞
踩
article
mysql
增量
备份
与
恢复
使用详解...
本文详述了MySQL的
增量
备份
策略,包括全备、
增量
备份
和差异
备份
。重点探讨了基于日志和时间戳的
增量
备份
原理,以及mysq...
赞
踩
article
实验
1:
Mysql
—
数据库
定义
和
操作语言_
mysql
实验
一
数据库
和
表的管理...
这篇博客详细介绍了MySQL
数据库
的使用,包括
数据库
定义、数据查询、高级查询、更新操作、视图创建及索引管理。内容涵盖创建...
赞
踩
article
ubantu20.04
服务器
使用
docker
以及
docker
-
compose
编排
部署
前后端分离个人博...
ubantu20.04使用
docker
部署
前后端分离个人博客项目(
springboot
+
vue
+
mysql
+
redis
)...
赞
踩
article
MySQL
——
插入
加锁
/
唯一
索引
插入
死锁
/
批量
插入
效率_
insert
会
加锁
吗...
本文详细介绍了
MySQL
的
加锁
机制,特别是
插入
操作时的
加锁
过程,包括
插入
意向锁、间隙锁、S锁和X锁等。讨论了并发环境下批...
赞
踩
article
mysql
insert
锁
机制_
数据库
insert
会
锁
表吗...
一、前言上周遇到一个因
insert
而引发的死
锁
问题,其成因比较令人费解。于是想要了解一下
insert
加
锁
机制,但是发现网...
赞
踩
article
【
MySQL
】深入解析
日志
系统:
undo
log
、
redo
log
、
bin
log
...
MySQL
数据库提供了功能强大的
日志
系统,今天来深入学习下这三个
日志
实现细节。_
undo
log
undo
log
...
赞
踩
article
Navicat
for My
SQL
批量执行多个
SQL
文件
_
navicat
运行多个
sql
文件
...
文章目录1. 背景描述2.
文件
合并3. 数据加载1. 背景描述有个同事给发了一个数据库初始化
sql
文件
夹,里面是有99...
赞
踩
article
Navicat
for My
SQL
批量执行多个
SQL
文件---
Windows
-Type命令_n...
文章介绍了如何在
Windows
环境下,使用
Navicat
forMy
SQL
客户端批量执行多个
SQL
文件。通过
Windows
...
赞
踩
article
my
sql
快速导入
sql
文件
工具_浅谈使用
navicat
for
my
sql
可视化工具批量导入sq...
今天,同事想要在线上
数据
库中的
数据
拉取到本地
数据
库中进行查询
数据
(怕把
数据
误删),本于自己也好久没有操作过,就也要来一份...
赞
踩
article
【
MySQL
】将
CSV
文件
快速
导入
MySQL
中_
mysql
导入
csv
文件
...
一般来说,将
csv
文件
导入
mysql
数据库有两种办法:使用 navicat、workbench 等软件中的
导入
向导手动导...
赞
踩
article
解决
Navicat
for
Oracle
(MySQL)
导入
csv
文件
时出现中文乱码的问题_navic...
解决
Navicat
for
Oracle
(MySQL)
导入
csv
文件
时出现中文乱码的问题_
navicat
导入
csv
文件
乱...
赞
踩
article
self
join
, no
window
function...
一位求职者分享了自己在找工作过程中的经历,包括面试遇到的挑战、公司的面试流程以及自己的应对策略。文章提及了鹅厂、美团、字...
赞
踩
article
[
MySQL
][深入理解
隔离
性][上][
MVCC
]详细讲解_
insert
的
数据
是怎么通过
mvcc
隔离
...
[
MySQL
][深入理解
隔离
性][上][
MVCC
]详细讲解_
insert
的
数据
是怎么通过
mvcc
隔离
的
insert
的
数据
...
赞
踩
article
【
MySQL
】
MVCC
详解
与
MVCC
实现
原理
(
MySQL
专栏启动)_
mysql
中的
mvcc
的使用和原...
本文是:
MySQL
事务隔离机制与实现
原理
详解
,的深入学习,我们在了解
MySQL
事务隔离机制与实现
原理
后,了解什么是MVC...
赞
踩
article
多
版本
并发
控制
MVCC
--
MySQL
...
MySQL
中
MVCC
介绍多
版本
并发
控制
MVCC
--
MySQL
...
赞
踩
相关标签
mysql
windows
mysql my malloc
前端
web
阿里云
php
apache
linux
运维
服务器
mysql增量备份
mysql增量备份与恢复
mysql增量备份方案
xtrabackup使用
xtrabackup增量备份
数据库
sql
docker
加锁
批量插入
唯一索引
S锁/X锁
binlog