1054 Unknown column x.y in order clause
予期していなかったクエリで phpMyAdmin 内でエラーが発生しました。
- 使用されたクエリに ORDER 句が含まれていませんでした。
- 使用されるクエリは、同一のテーブル スキーマを持つデータベースで正常に機能するため、エラーになることはありません。
この問題は、XAMPP コントロール パネルから mysql デーモンを単純に強制終了して、長時間実行されるクエリを停止した後に発生しました。
AREPAIR TABLE x
は役に立ちませんでした。存在しないとされる列 ( SELECT x.y FROM x
) を明示的にクエリしてから、もう一度クエリを実行することで問題を解決しました。
私のように mysql プロセスを停止したことがこの症状の原因である可能性はありますか?
編集: 上記のエラーを生成したクエリ:
SELECT * FROM x AS tblA
INNER JOIN (
SELECT z, y, COUNT(*) AS count
FROM x
GROUP BY z, y
HAVING count > 1
) tblB
ON tblA.z = tblB.z AND tblA.y = tblB.y
編集 2: mysql を強制終了したときに 300k 行のテーブルで実行されていた元のクエリ:
SELECT * FROM x AS temp1
INNER JOIN ( SELECT z, y, Count(*) AS count FROM x GROUP BY z, y HAVING Count > 1 ) temp2
ON temp1.z = temp2.z AND temp1.y = temp2.y
RIGHT JOIN
(
SELECT DISTINCT whole.v FROM x AS tblA
INNER JOIN ( SELECT z, y, Count(*) AS count FROM x GROUP BY z, y HAVING Count > 1 ) tblB
ON tblA.z = tblB.z AND tblA.y = tblB.y
RIGHT JOIN ( SELECT * FROM x ) whole
ON tblA.v = whole.v AND tblA.w = whole.w
WHERE tblA.v IS NULL
) temp3
ON temp1.v != temp3.v