gpt4 book ai didi

mysql - 如何获取嵌套子查询以识别父查询列

转载 作者:可可西里 更新时间:2023-11-01 08:54:44 30 4
gpt4 key购买 nike

我在尝试计算每个给定 ID 的值总和时遇到问题。我决定使用子查询来执行此操作(通常我会使用连接,但我也为每个子查询保留一个计数器以进行裁剪 - see this question 了解更多信息)。对于这个问题,假设我有以下 MySQL 查询:

/* 1.  */  SELECT 
/* 2. */ t1.experiement_id,
/* 3. */ (SELECT sum(x.size)
/* 4. */ FROM (SELECT size, ( @rownum := @rownum + 1 ) AS `rownum`
/* 5. */ FROM data AS t0
/* 6. */ JOIN ( select @rownum := 0 )
/* 7. */ WHERE t0.experiment_id = t1.experiment_id
/* 8. */ ORDER BY size) AS x
/* 9. */ WHERE x.rownum <= t2.clip_index ) AS `sum`
/* 10. */
/* 11. */ FROM data AS t1
/* 12. */ JOIN data_clip AS t2 USING (experiment_id)
/* 13. */
/* 14. */ GROUP BY t1.experiment_id

问题发生在 7 行,我试图在该行中隔 ionic 查询中与 experiement_id 匹配的行 - 我收到一个错误 t1.experiement_id 是未知列。这只发生在嵌套深度超过 1 层的查询上。作为检查,我注意到 t2.clip_index 处理得很好。如果我注释掉第 7 行,查询返回正常(尽管结果错误)。知道如何让子查询识别父表的列以在我的条件下使用吗?谢谢。

最佳答案

您是否尝试过类似的方法来计算行数而不是用户定义的变量?

(SELECT sum(size) FROM  data AS t0                  
WHERE t0.experiment_id = t1.experiment_id
ORDER BY size HAVING COUNT(*)<=t2.clip_index
) AS `sum`

如果这有效,请告诉我,这是我们正在研究的一个有趣的问题。

关于mysql - 如何获取嵌套子查询以识别父查询列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7088107/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com