mysql数据库多表联查之子查询

本文详细介绍了MySQL中如何在where、having及from子句中运用子查询进行多表联查,重点讲解了子查询在不同场景下的使用技巧,并强调了为子查询指定别名的重要性。

 一条sql语句


当需要从一个表中检索信息,当检索条件值又是来自该表本身的内部数据时,子查询非常有用。
子查询可以嵌入以下SQL子句中:where子句、having子句和from子句。语句结构简单,可读性强。
子查询查询顺序,先执行子查询,获取结果之后,再执行外部语句,效率比较低


1.单行子查询
内部select语句只返回一行结果的查询(单列)
主查询的where子句使用单行子查询,返回结果要采用单行比较运算符。

说明:(1)子查询要用括号括起来
          (2)将子查询放在比较运算符的右边
          (3)不要在子查询中使用order by 子句,select语句中只能有一个order by 语句,并且它只能是主select语句的最后一个子句。




2.where子句中使用单行子查询






3.单行子查询中使用组函数




4.having子句中使用单行子查询





5.from子句中使用子查询

必须给子查询指定别名




括号里的是多条记录,而where是单行查询。
where后面只可以比较单行记录结果,多行不可以运算符比较。分组之后多条记录作为临时表看待,并且一定要起个别名。





小结:
优点:复杂多表联查  简化sql语句  可读性强
缺点:效率低下





评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值