前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mysql join

mysql join

作者头像
阿超
发布2022-08-16 16:21:45
5920
发布2022-08-16 16:21:45
举报
文章被收录于专栏:快乐阿超

首先先放张图

今天聊聊mysqljoin连接,其本质是拿主表每条数据取出来和子表每行数据进行循环比较,如果满足则返回,不满足返回null

首先是内连接

两者之间取交集,两边都满足返回,不满足不返回

语法很简单

代码语言:javascript
复制
SELECT
	* 
FROM
	tb_goods a
	INNER JOIN tb_goods_desc b 
WHERE
	a.id = b.goods_id

其中,INNER可以省略掉只写个JOIN

然后是左外连接

左外连接,此时可以理解为理解 左表为主表,右表为子表。在条件不满足时,左表数据存在,右表数据为null

简单来说就是结果集包含左表所有行,右表不匹配则为null

代码语言:javascript
复制
SELECT
	* 
FROM
	sp_user a
	LEFT OUTER JOIN tb_seller b ON a.seller_id = b.seller_id 

其中,OUTER可省略

反向操作一波就是右外连接

代码语言:javascript
复制
SELECT
	* 
FROM
	tb_seller a
	RIGHT OUTER JOIN sp_user b ON a.seller_id = b.seller_id 
WHERE
	b.seller_id IS NULL

还有一种是全外连接

全外连接是内联结果和不满足条件的行

mysql不支持全外连接语法,所以我们用UNION实现全外连接

代码语言:javascript
复制
SELECT
	* 
FROM
	sp_user a
	LEFT OUTER JOIN tb_seller b ON a.seller_id = b.seller_id UNION
SELECT
	* 
FROM
	sp_user a
	RIGHT OUTER JOIN tb_seller b ON FALSE

另外,阿里开发规范表示

【强制】超过三个表禁止 join。需要 join 的字段,数据类型必须绝对一致;多表关联查询 时,保证被关联的字段需要有索引。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-08-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档