weixin_43961185 2019-01-08 16:09 采纳率: 0%
浏览 1157

作为计算字段使用子查询

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次,有没有大佬知道,能用比较通俗的说法解释下,谢谢
  • 写回答

1条回答 默认 最新

  • 憧憬blog 2023-03-15 09:10
    关注

    首先,这个子查询是作为计算字段嵌套在主查询中的。在主查询中,我们查询了 customers 表,获得了5条记录。对于每一条主查询的记录,都会执行一次嵌套的子查询。因此,这个子查询会被执行5次,而不是对每个客户执行了5次。

    在子查询的 SQL 语句中,我们查询了 order 表,只不过它的条件是 orders.cust_id = customers.cust_id,也就是只查询该客户的订单。因此,对于每一条主查询的记录,子查询会返回该客户的订单数量。这个订单数量会作为一个计算字段 orders,和主查询中的 customers 表的其他列一起返回。

    希望这样解释可以让你更好地理解这个子查询的执行过程。

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格