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-11-16MySQL资料:新手入门教程
- 2024-11-16MySQL资料:新手入门教程
- 2024-11-15MySQL教程:初学者必备的MySQL数据库入门指南
- 2024-11-15MySQL教程:初学者必看的MySQL入门指南
- 2024-11-04部署MySQL集群项目实战:新手入门教程
- 2024-11-04如何部署MySQL集群资料:新手入门指南
- 2024-11-02MySQL集群项目实战:新手入门指南
- 2024-11-02初学者指南:部署MySQL集群资料
- 2024-11-01部署MySQL集群教程:新手入门指南
- 2024-11-01如何部署MySQL集群:新手入门教程