​​深入理解mysql的自连接和join关联!

  • A+
所属分类:SQL技巧

​​深入理解mysql的自连接和join关联!

 

这篇文章主要给大家介绍了关于mysql的自连接和join关联的相关资料,文中介绍的非常详细,相信对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。

 

一、mysql自连接

mysql有时在信息查询时需要进行对自身连接(自连接),所以我们需要为表定义别名。我们举例说明,下面是商品采购表,我们需要找到采购价格比惠惠高的所有信息。

​​深入理解mysql的自连接和join关联!

一般情况我们看到这张表我们第一时间用语句进行操作:

SELECT * FROM shoping WHERE price>27

可想而知,这是有多么简单,假设你并不知道数据库表详细数据或者数据量相当庞大呢?作为一个数据库管理员,我们就要用别的方式迅速找出所需要的数据。

分步查询

最简单的一种方式,也是最容易想到操作:

SELECT price FROM shopping WHERE name='惠惠' //得出price查询结果为27

SELECT * FROM shopping WHERE price>27

与采用自连接的方式相比,这种方法需要对中间结果进行人工干预,显然不利于程序中的自动处理操作。

自连接方式:

SELECT b.*

from shopping as a,shopping as b

where a.name='惠惠'

and a.price<b.price

order by b.id

我们可以获取到如下表信息:

​​深入理解mysql的自连接和join关联!

 

注意点:

别名 a,b虽然名称不同,但是同一个表,定义别名的目的是更方便在自身进行删选。
执行select通过(中间表)所得到的b.*,,就是最终结果。
子查询

子查询也是常用的一种方式,就是在select里嵌套select。

实现代码如下:

SELECT * FROM shopping

WHERE price>(select price from 'shopping' where name='惠惠')

所得结果如下所示,可见两种方式所得结果相同:

​​深入理解mysql的自连接和join关联!

 

二、JOIN

INNER JOIN

内关联的主要作用是在表中存在至少一个匹配时,就返回结果集,这里的inner join和join作用相同,所以一起介绍。
下面给出两张表,分别为goods和category表:

​​深入理解mysql的自连接和join关联!
​​深入理解mysql的自连接和join关联!
SELECT * FROM goods INNER JOIN category

ON goods.id=category.goods_id

ORDER BY gods.id

结果如下所示:

​​深入理解mysql的自连接和join关联!

LEFT JOIN

LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。做项目时建议使用左关联。但是存在很多表关联的,一个表对a是左连接,但同时对b是右连接,这时加上右连接,写起来可能方便一些。
套用一开始的两张表,进行左关联查询:

SELECT goods.*,category.cate_name

FROM goods LEFT JOIN category

ON goods.id=category.goods_id

ORDER BY goods.id

​​深入理解mysql的自连接和join关联!

 

RIGHT JOIN

RIGHT JOIN 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。套用一开始的两张表进行右关联查询:

SELECT a.goods_name,a.price,b.*

FROM goods as a

RIGHT JOIN category as b

ON a.id=b.goods_id

ORDER BY b.id

​​深入理解mysql的自连接和join关联!

 

对于多表关联的情况,就是多加几条关联语句。

 

学习资料见知识星球。

以上就是今天要分享的技巧,你学会了吗?若有什么问题,欢迎在下方留言。

快来试试吧,小琥 my21ke007。获取 1000个免费 Excel模板福利​​​​!

更多技巧, www.excelbook.cn

欢迎 加入 零售创新 知识星球,知识星球主要以数据分析、报告分享、数据工具讨论为主;

​​深入理解mysql的自连接和join关联!

你将获得:

1、价值上万元的专业的PPT报告模板。

2、专业案例分析和解读笔记。

3、实用的Excel、Word、PPT技巧。

4、VIP讨论群,共享资源。

5、优惠的会员商品。

6、一次付费只需99元,即可下载本站文章涉及的文件和软件。

  • 我的微信
  • weinxin
  • 我的知识星球
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: