特定の ID ごとの値の合計を計算しようとしている問題があります。サブクエリを使用してこれを行うことにしました(通常は結合を使用しますが、クリッピングのために各サブクエリのカウンターも保持しています-詳細については、この質問を参照してください)。この質問のために、次の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
、一致するサブクエリ内の行を分離しようとしている行で発生します -不明な列でexperiement_id
あるエラーが発生しています。t1.experiement_id
これは、1 レベル以上の深さでネストされたクエリでのみ発生します。ちょうどチェックとして、私はそれt2.clip_index
がうまく処理されていることに気づきました. 行 #7 をコメントアウトすると、クエリは正常に返されます (ただし、結果は間違っています)。私の条件で使用する親テーブルの列をサブクエリに認識させる方法はありますか? ありがとう。