mysql内连接和外连接有哪些区别
发表于:2025-11-06 作者:千家信息网编辑
千家信息网最后更新 2025年11月06日,这篇文章主要介绍"mysql内连接和外连接有哪些区别",在日常操作中,相信很多人在mysql内连接和外连接有哪些区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"mys
千家信息网最后更新 2025年11月06日mysql内连接和外连接有哪些区别
这篇文章主要介绍"mysql内连接和外连接有哪些区别",在日常操作中,相信很多人在mysql内连接和外连接有哪些区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"mysql内连接和外连接有哪些区别"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
mysql内连接和外连接的区别:内连接会取出连接表中匹配到的数据,匹配不到的不保留;而外连接会取出连接表中匹配到的数据,匹配不到的也会保留,其值为NULL。
本教程操作环境:windows7系统、mysql8版本、Dell G3电脑。
区别
内连接(inner join):取出连接表中匹配到的数据,匹配不到的不保留
外连接(outer join):取出连接表中匹配到的数据,匹配不到的也会保留,其值为NULL
示例表
users表
mysql> select * from users;+----+-------+| id | name |+----+-------+| 1 | john || 2 | May || 3 | Lucy || 4 | Jack || 5 | James |+----+-------+5 rows in set (0.00 sec)
topics表
mysql> select * from topics;+----+---------------------------------------+---------+| id | title | user_id |+----+---------------------------------------+---------+| 1 | Hello world | 1 || 2 | PHP is the best language in the world | 2 || 3 | Laravel artist | 6 |+----+---------------------------------------+---------+3 rows in set (0.00 sec)
内连接(inner join)
示例
mysql> select * from users as u inner join topics as t on u.id=t.user_id;+----+------+----+---------------------------------------+---------+| id | name | id | title | user_id |+----+------+----+---------------------------------------+---------+| 1 | john | 1 | Hello world | 1 || 2 | May | 2 | PHP is the best language in the world | 2 |+----+------+----+---------------------------------------+---------+2 rows in set (0.00 sec)
inner可以省略,as是给表起别名,也可以省略
mysql> select * from users u join topics t on u.id=t.user_id;+----+------+----+---------------------------------------+---------+| id | name | id | title | user_id |+----+------+----+---------------------------------------+---------+| 1 | john | 1 | Hello world | 1 || 2 | May | 2 | PHP is the best language in the world | 2 |+----+------+----+---------------------------------------+---------+2 rows in set (0.00 sec)
以上两句等价于
mysql> select * from users,topics where users.id=topics.user_id;+----+------+----+---------------------------------------+---------+| id | name | id | title | user_id |+----+------+----+---------------------------------------+---------+| 1 | john | 1 | Hello world | 1 || 2 | May | 2 | PHP is the best language in the world | 2 |+----+------+----+---------------------------------------+---------+2 rows in set (0.00 sec)
外连接(outer join)
左外连接(left outer join):以左边的表为主表
右外连接(right outer join):以右边的表为主表
以某一个表为主表,进行关联查询,不管能不能关联的上,主表的数据都会保留,关联不上的以NULL显示
通俗解释就是:先拿出主表的所有数据,然后到关联的那张表去找有没有符合关联条件的数据,如果有,正常显示,如果没有,显示为NULL
示例
mysql> select * from users as u left join topics as t on u.id=t.user_id;+----+-------+------+---------------------------------------+---------+| id | name | id | title | user_id |+----+-------+------+---------------------------------------+---------+| 1 | john | 1 | Hello world | 1 || 2 | May | 2 | PHP is the best language in the world | 2 || 3 | Lucy | NULL | NULL | NULL || 4 | Jack | NULL | NULL | NULL || 5 | James | NULL | NULL | NULL |+----+-------+------+---------------------------------------+---------+5 rows in set (0.00 sec)
等价于以下,只是字段的位置不一样
mysql> select * from topics as t right join users as u on u.id=t.user_id;+------+---------------------------------------+---------+----+-------+| id | title | user_id | id | name |+------+---------------------------------------+---------+----+-------+| 1 | Hello world | 1 | 1 | john || 2 | PHP is the best language in the world | 2 | 2 | May || NULL | NULL | NULL | 3 | Lucy || NULL | NULL | NULL | 4 | Jack || NULL | NULL | NULL | 5 | James |+------+---------------------------------------+---------+----+-------+5 rows in set (0.00 sec)
左外连接和右外连接是相对的,主要就是以哪个表为主表去进行关联
到此,关于"mysql内连接和外连接有哪些区别"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
数据
关联
学习
示例
更多
等价
帮助
实用
通俗
接下来
位置
别名
只是
右边
字段
就是
教程
文章
方法
条件
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
可利用的数据库
网络安全强化运行
酒店网络服务器
服务器安装与配置实验
山东语音网络技术经验丰富
深圳大富网络技术怎么样
天涯明月刀回流服务器
郑州高新区网络安全会
大话西游手游服务器查询
互联网公司金融科技股
数字服务器电影文件缩写是什么
网络安全为师生手抄报
数据库imp命令
北京归创网络技术有限公司
blue传奇数据库编辑器
连接数据库通信模块无效
服务器禁止玩家破坏服主建造
服务器搭建与管理学后感受
c怎么清空数据库数据
目前的软件开发模型是什么
互联网公司 科技公司区别
城管网络安全工作
鱼人莫洛克服务器
批量管理服务器监控应用
网易游戏软件开发工资待遇
乡镇公务员服务器五年
上海相悦网络技术有限公司
广元网络技术质量
php网络技术考试题
履职故事软件开发