对不起措辞不佳的问题..但我不知道如何解释这个......
MySQL... 我有一个查询,其中包含几个极其复杂的子查询。我从一张表中选择,我需要根据各种标准找出每条记录的“位置”..所以我有这个
Select record.id, record.title
(select count(*) from (complex-query-that-returns-newer-records)) as agePlace,
(select count(*) from (complex-query-that-returns-records-with-better-ROI)) as ROIPlace...
From record...
现在的问题是查询速度很慢——正如我所期望的那样,给出了所需的处理量。但我意识到在某些情况下,2 个子查询的结果是相同的,我不需要运行子查询两次..(或者在我的代码中两次)。因此,我想将其中一个子查询包装在 if 语句中,如果满足条件,请使用已计算该数据的另一列中的值,否则,正常运行子查询。
我试过只放置另一个子查询的别名,但它说未知列 totalSales 因为该字段在查询中,而不是其中一个表。
有没有办法解决?
更新:我已将此作为查询重构问题重新发布-感谢您的建议。如何将选择子查询重构为联接?