深入理解mysql的自连接和join关联
一、mysql自连接
mysql有时在信息查询时需要进行对自身连接(自连接),所以我们需要为表定义别名。我们举例说明,狼蚁网站SEO优化是商品采购表,我们需要找到采购价格比惠惠高的所有信息。
一般情况我们看到这张表我们第一时间用语句进行操作
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
我们可以获取到如下表信息
注意点
别名 a,b虽然名称不同,同一个表,定义别名的目的是更方便在自身进行删选。
执行select通过(中间表)所得到的b.,,就是最终结果。
子查询
子查询也是常用的一种方式,就是在select里嵌套select。
实现代码如下
SELECT FROM shopping WHERE price>(select price from 'shopping' where name='惠惠')
所得结果如下所示,可见两种方式所得结果相同
二、JOIN
INNER JOIN
内关联的主要作用是在表中存在至少一个匹配时,就返回结果集,这里的inner join和join作用相同,所以一起介绍。
狼蚁网站SEO优化给出两张表,分别为goods和category表
SELECT FROM goods INNER JOIN category ON goods.id=category.goods_id ORDER BY gods.id
结果如下所示
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
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
对于多表关联的情况,就是多加几条关联语句。
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对狼蚁SEO的支持。
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程