MYSQL中的各种连表查询操作
2022/6/30 2:53:01
本文主要是介绍MYSQL中的各种连表查询操作,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
MYSQL中的各种连表查询操作
在mysql数据库中,主要有三种连表方式,分别是:
-
外连接 outer join
-
内连接 inner join
-
交叉连接 cross join
为了讲解以上三种连接,先于数据中构建好测试数据,涉及到两个表user、article:
user表,有4条数据article表,user_id表示文章所属的user外连接
外连接又可以细分为三种:
-
左外连接
-
右外连接
-
完全外连接
左外连接
select * from user left join article on user.id=article.user_id;
无论左表在右表有无匹配,都返回左表的数据,缺失的右表数据为NULL
维恩图形象解析
右外连接
select * from user right join article on user.id=article.user_id;
无论右表在左表有无匹配,都返回右表的数据,缺失的左表数据为NULL
维恩图形象解析
完全外连接
mysql并不支持full join,如果支持,将会像如下sql语句:
select * from user full join article on user.id=article.user_id;
可以通过union all子句,将left join与right join组合在一起,达到类似full join的效果:
无论左右表有无匹配,都返回两者的数据,缺失的数据为NULL
维恩图形象解析
内连接
内连接相对于外链接,就是内连接只要左右表都匹配的数据,也就是交集
select * from user inner join article on user.id=article.user_id;
维恩图形象解析
交叉连接
交叉连接相当于求左右两表的笛卡尔积
什么是笛卡尔积?
比如我有两组数据,a(1, 2, 3) 与 b(4, 5 6),求它们的笛卡尔积的结果就是:
3×3 = 9 组数据
select * from user cross join article;
4×7=28 组数据
总结:
你可以通过连表实现更复杂的查询
这篇关于MYSQL中的各种连表查询操作的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-03-15MySQL多数据源笔记5-ShardingJDBC实战
- 2024-03-11natural join mysql
- 2024-03-11关于VS2017,VS2015 中利用 EF使用Mysql 不显示数据源问题解决方案
- 2024-02-26mysql 阿里云xb后缀备份文件恢复-icode9专业技术文章分享
- 2024-02-22docker mysql 5.7
- 2024-02-18从 20 多套 MySQL 到 1 套 TiDB丨骏伯网络综合运营管理平台应用实践
- 2024-02-07mysql 外键索引入门介绍,为什么工作中很少有人使用?
- 2024-01-19你真的了解MySQL日期函数吗?
- 2024-01-12MySQL 主从延迟的常见原因及解决方法
- 2024-01-11mysql 修改密码