与えられたIDごとの合計値を計算しようとしているところに問題があります。私はサブクエリを使用してこれを行うことにしました(通常、私は結合を使用しますが、私はまた、各サブクエリのためにクリッピング目的のためのカウンタを保持しています - see this question詳細)。この質問のために、私は次のようのMySQLクエリを持っていると仮定します。親クエリの列を認識するためにネストされたサブクエリを取得する方法
問題は、私はexperiement_id
に一致するサブクエリ内の行を特定しようとしている行
7
、上で起こる
/* 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
- I t1.experiement_id
が不明な列であるというエラーが表示されます。これは、1レベル以上のネストされたクエリでのみ発生します。小切手のように、t2.clip_index
が正常に処理されていることがわかりました。私が行#7をコメントアウトした場合、クエリは間違った結果を返しても正常に戻ります。どのようにサブクエリを私の状態で使用する親テーブルの列を認識させるか考えていますか?ありがとう。
私は同じ問題を抱えていますが、解決策を見つけましたか? – aleroot
申し訳ございませんが、まだです。 – sa125