目录mysql自毗连mysql有时在信息查询时必要举行对自身毗连(自毗连),以是我们必要为表定义别名。 我们举例阐明,下面是商品采购表,我们必要找到采购价格比惠惠高的全部信息。 一样平常情况我们看到这张表我们第一时间用语句举行利用: [code]SELECT * FROM shoping WHERE price>27[/code]可想而知,这是有多么简单,假设你并不知道数据库表详细数据或者数据量相当巨大呢? 作为一个数据库管理员,我们就要用别的方式迅速找出所必要的数据。 分步查询最简单的一种方式,也是最轻易想到利用: [code]SELECT price FROM shopping WHERE name='惠惠' //得出price查询结果为27 SELECT * FROM shopping WHERE price>27[/code]与采用自毗连的方式相比,这种方法必要对中央结果举行人工干预,显然不利于程序中的自动处理惩罚利用。 自毗连方式[code]SELECT b.* from shopping as a,shopping as b where a.name='惠惠' and a.price<b.price order by b.id[/code]我们可以获取到如下表信息: 留意点:
子查询子查询也是常用的一种方式,就是在select里嵌套select。 实现代码如下: [code]SELECT * FROM shopping WHERE price>(select price from 'shopping' where name='惠惠')[/code]所得结果如下所示,可见两种方式所得结果相同: JOININNER JOIN内关联的主要作用是在表中存在至少一个匹配时,就返回结果集,这里的inner join和join作用相同,以是一起先容。 下面给出两张表,分别为goods和category表: [code]SELECT * FROM goods INNER JOIN category ON goods.id=category.goods_id ORDER BY gods.id[/code]LEFT JOINLEFT JOIN 关键字会从左表 (table_name1) 那里返回全部的行,纵然在右表 (table_name2) 中没有匹配的行。 做项目时发起利用左关联。但是存在许多表关联的,一个表对a是左毗连,但同时对b是右毗连,这时加上右毗连,写起来可能方便一些。 套用一开始的两张表,举行左关联查询: [code]SELECT goods.*,category.cate_name FROM goods LEFT JOIN category ON goods.id=category.goods_id ORDER BY goods.id[/code]RIGHT JOINRIGHT JOIN 关键字会右表 (table_name2) 那里返回全部的行,纵然在左表 (table_name1) 中没有匹配的行。 套用一开始的两张表举行右关联查询: [code]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[/code]对于多表关联的情况,就是多加几条关联语句。 总结以上为个人履历,盼望能给各人一个参考,也盼望各人多多支持脚本之家。 来源:https://www.jb51.net/database/326960tpc.htm 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
|手机版|小黑屋|梦想之都-俊月星空
( 粤ICP备18056059号 )|网站地图
GMT+8, 2025-7-2 03:17 , Processed in 0.028135 second(s), 18 queries .
Powered by Mxzdjyxk! X3.5
© 2001-2025 Discuz! Team.