「エラー1250(42000):SELECTの1つからのテーブル'…'はORDER句で使用できません」というメッセージが表示される場合は、<などの演算子を使用しているときに列名をテーブル名で修飾していることが原因である可能性があります。 code> UNION 、 INTERSECT
、または EXCEPT
MariaDBで。
これを修正するには、テーブル名を削除するか、列エイリアスを使用します。
エラーを生成するコードの例を次に示します。
(SELECT TeacherName FROM Teachers)
UNION
(SELECT StudentName FROM Students)
ORDER BY Teachers.TeacherName ASC;
結果:
ERROR 1250 (42000): Table 'Teachers' from one of the SELECTs cannot be used in ORDER clause
この場合、結果を TeacherName
で並べ替えようとしました。 列ですが、その列をテーブル名で修飾しました( Teachers.TeacherName
を使用しました 列名を参照するため)。
UNION
の結果を注文する場合、このようなテーブルの参照は機能しません MariaDBでの操作。 INTERSECT
の結果を注文する場合も同様です。 演算子とEXCEPT
オペレーター。
この問題を修正する1つの方法は、 ORDER BY
からテーブル名を削除することです。 条項:
(SELECT TeacherName FROM Teachers)
UNION
(SELECT StudentName FROM Students)
ORDER BY TeacherName ASC;
これを修正する別の方法は、列のエイリアスを使用することです:
(SELECT TeacherName t FROM Teachers)
UNION
(SELECT StudentName FROM Students)
ORDER BY t ASC;
このオプションを使用して、列にエイリアスを割り当て、 ORDER BY
でそのエイリアスを参照します 条項。