1

言葉遣いの悪い質問で申し訳ありません..しかし、これを他にどのように説明できるかわかりません...

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 つのサブクエリの結果が同じになる状況があり、サブクエリを 2 回実行する必要がないことに気付きました.. (または、コードに 2 回実行します)。したがって、サブクエリの 1 つを if ステートメントでラップし、基準が満たされている場合は、そのデータを既に計算した別の列の値を使用し、それ以外の場合は通常どおりサブクエリを実行します。

他のサブクエリのエイリアスを入れてみましたが、フィールドがテーブルの 1 つではなくクエリにあるため、unknown column totalSales と表示されます。

これを回避する方法はありますか?

更新:これをクエリの再構築の質問として再投稿しました-提案に感謝します.選択したサブクエリを結合にリファクタリングする方法は?

4

1 に答える 1