【发布时间】:2016-04-01 08:01:29
【问题描述】:
我想优化以下查询以避免多次计数。
SELECT product.Id,
IF((SELECT COUNT(*)
FROM productorders
WHERE productorders.ProductId = product.Id) > 0,
(SELECT COUNT(*) FROM productorders WHERE productorders.ProductId = product.Id),
9999999999
)
FROM product
有人可以提出相同的解决方案
我在幻数 9999999999 中使用了更复杂的逻辑,为了简单起见,我在这里避免使用它
此外,这个查询是一个更大的查询的一小部分......为了简单起见,我避免这样做
解释结果如下
+ 选项 id select_type table type possible_keys key key_len ref rows Extra
1 基本的 产品 指数 空值 类别 ID 8 空值 25 使用索引
3
依赖子查询 产品订单 参考 基本的 基本的 8 tabletest.product.Id 1 使用索引 2
依赖子查询 产品订单 参考 基本的 基本的 8 tabletest.product.Id 1 使用索引
【问题讨论】:
标签: mysql