MySQL数据库——使用子查询

**SELCET语句是SQL的查询。迄今为止我们所看到的所有SELCET都是简单查询,即从单个数据库表中检索数据的单条语句。
SQL还允许创建子查询,就是嵌套在其他查询内的查询!**

part 1 使用子查询进行过滤

SELECT coder.code_id FROM coder WHERE ID IN (SELECT coder.ID
FROM coder WHERE coder.name = ‘huang’);

上面的例子就是使用了子查询 我们从内往外来说,我们的目的是筛选出 name 都为 huang 的行 的code_id:
(1) 我们先把 name = ‘huang’ 的ID 筛选出来
(2) 然后根据id 我们 把他们的 code_id 筛选出来

**我们这里需要说明几点:
1.包含子查询的查询一般都比较复杂,要合理的使用缩进来使语句便于阅读!
2.显而易见,在WHERE子句中使用子查询能够编写出功能很强的并且非常灵活的SQL语句。对于能嵌套的子查询数目,并没有限制
但是在实际使用中不要太多,这会限制系统的性能。
3.子查询 一般 和 IN 操作符结合使用 。

part 2 作为计算字段使用子查询

现在我们考虑如下操作:
(1)从表中检索出所有程序员用户列表
(2)对于所有程序员用户,统计他们在git表中的作品数目

SELECT git.state,(SELECT COUNT(*) FROM git,coder WHERE git.name = coder.name) AS lev FROM git;

像上面这样类型的查询称为相关子查询,两个表哦。相关子查询:涉及外部查询的子查询

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值