別のテーブルを結合するクエリを作成しようとしていますが、この場合、サブクエリの左側のテーブルの列の1つからの値を使用する必要があります。そうすると、mySQLがそのような名前の列を見つけることができないというエラーが表示されます。
まず、2つのテーブル(t1とt2)を参照するクエリを次に示します(@categoryは、プログラムからサブスクライブされるパラメーターです)。
SELECT t1.incID, t1.name, t1.sortBy, SQ.person, SQ.pointsValue
FROM table1 t1
LEFT OUTER JOIN (
SELECT incID, person, IF( t1.sortBy=0, max(points), min(points) ) pointsValue
FROM table2
GROUP BY incID
) SQ ON SQ.incID = t1.incID
WHERE t1.category=@category
ORDER BY t1.name ASC
LIMIT 0 , 30
さて、このクエリを実行すると、返されるエラーは次のとおりです。#1054-'フィールドリスト'の不明な列't1.sortBy'
t1.sortBy=0を0=0に置き換えると、クエリは正常に実行されるため、mySQLが操作の順序をどのように実行するかについて混乱しているように見えますか?
誰かがmySQLがこのようなクエリの操作の順序をどのように実行するか、そしてこの問題をどのように回避できるかを明確にしていただけますか?