位置: 编程技术 - 正文
推荐整理分享深入理解mysql的自连接和join关联(mysql理论知识),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:深入理解mysql pdf,mysql深度解析,mysqlmgr深入理解,mysql的了解,深入理解mysql核心技术pdf,mysql的了解,mysqlmgr深入理解,深入理解mysql的自连接和join关联,内容如对您有帮助,希望把文章链接给更多的朋友!
一、mysql自连接
mysql有时在信息查询时需要进行对自身连接(自连接),所以我们需要为表定义别名。我们举例说明,下面是商品采购表,我们需要找到采购价格比惠惠高的所有信息。
一般情况我们看到这张表我们第一时间用语句进行操作:
可想而知,这是有多么简单,假设你并不知道数据库表详细数据或者数据量相当庞大呢?作为一个数据库管理员,我们就要用别的方式迅速找出所需要的数据。
分步查询
最简单的一种方式,也是最容易想到操作:
与采用自连接的方式相比,这种方法需要对中间结果进行人工干预,显然不利于程序中的自动处理操作。
自连接方式:
我们可以获取到如下表信息:
注意点:
别名 a,b虽然名称不同,但是同一个表,定义别名的目的是更方便在自身进行删选。
执行select通过(中间表)所得到的b.*,,就是最终结果。
子查询
子查询也是常用的一种方式,就是在select里嵌套select。
实现代码如下:
所得结果如下所示,可见两种方式所得结果相同:
二、JOIN
INNER JOIN
内关联的主要作用是在表中存在至少一个匹配时,就返回结果集,这里的inner join和join作用相同,所以一起介绍。下面给出两张表,分别为goods和category表:
结果如下所示:
LEFT JOIN
LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。做项目时建议使用左关联。但是存在很多表关联的,一个表对a是左连接,但同时对b是右连接,这时加上右连接,写起来可能方便一些。
套用一开始的两张表,进行左关联查询:
RIGHT JOIN
RIGHT JOIN 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。套用一开始的两张表进行右关联查询:
对于多表关联的情况,就是多加几条关联语句。
总结
标签: mysql理论知识
本文链接地址:https://www.jiuchutong.com/biancheng/349722.html 转载请保留说明!友情链接: 武汉网站建设