Mysql从0到1(五):使用子查询

子查询:嵌套在其他查询中的查询,举例分析吧

1、查询出订购购物品TNT2的所有客户ID

(1)查包含TNT2的所有订单编号20005和20007

select order_num from orderitems where order_name = 'TNT2';

(2)查出具有订单号的客户

select cust_id from orders where order_num IN (20005,20007)

  (3) 整合一下:

select cust_id from orders where order_num

           IN (select order_num from orderitems where order_name = 'TNT2')

2、使用子查询的另一种方法是创建计算字段。

例如要显示customers表中每个客户的订单总数。订单与相应的客户ID存在order表中。

1、从customers表中找出客户列表。

select cust_id from customers 

2、对于检索出来的具体用户,统计其在order表中的订单数目

SELECT COUNT(*) as num_prods FROM orders where cust_id=10001

组合:
select cust_name,
(
SELECT COUNT(*) FROM orders WHERE orders.cust_id= customers.cust_id
) as ordertotal
from customers ORDER BY cust_name

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值