select cust_name,cust_state,
(select count(*) from orders where orders.cust_id = customers.cust_id)
as orders
FROM customers
order by cust_name;
```_
[分析:这 条 SELECT 语 句 对 customers 表 中 每 个 客 户 返 回 3 列 :cust_name 、 cust_state 和 orders 。 orders 是一个计算字段,它是由圆括号中的子查询建立的。该子查询对检索出的每个客户执行一次。在此例子中,该子查询执行了5次,因为检索出了5个客户。]
我不太明白这个子查询为什么执行会对每一个顾客执行了5次,有没有大佬知道,能用比较通俗的说法解释下,谢谢
作为计算字段使用子查询
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答
- 憧憬blog 2023-03-15 09:10关注
首先,这个子查询是作为计算字段嵌套在主查询中的。在主查询中,我们查询了 customers 表,获得了5条记录。对于每一条主查询的记录,都会执行一次嵌套的子查询。因此,这个子查询会被执行5次,而不是对每个客户执行了5次。
在子查询的 SQL 语句中,我们查询了 order 表,只不过它的条件是 orders.cust_id = customers.cust_id,也就是只查询该客户的订单。因此,对于每一条主查询的记录,子查询会返回该客户的订单数量。这个订单数量会作为一个计算字段 orders,和主查询中的 customers 表的其他列一起返回。
希望这样解释可以让你更好地理解这个子查询的执行过程。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 mmocr的训练错误,结果全为0
- ¥15 python的qt5界面
- ¥15 无线电能传输系统MATLAB仿真问题
- ¥50 如何用脚本实现输入法的热键设置
- ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
- ¥30 深度学习,前后端连接
- ¥15 孟德尔随机化结果不一致
- ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
- ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
- ¥15 谁有desed数据集呀