MariaDB
 sql >> база данни >  >> RDS >> MariaDB

Поправете „ГРЕШКА 1250 (42000):Таблица „...“ от един от SELECT не може да се използва в клаузата ORDER“ в MariaDB

Ако получавате „ГРЕШКА 1250 (42000):Таблица „...“ от един от SELECT не може да се използва в клауза ORDER“, това вероятно е защото квалифицирате име на колона с името на нейната таблица, когато използвате оператор като 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;

Решение 2

Друг начин да го коригирате е да използвате псевдоним за колоната:

(SELECT TeacherName t FROM Teachers)
UNION
(SELECT StudentName FROM Students)
ORDER BY t ASC;

С тази опция присвояваме псевдоним на колоната и след това препращаме към този псевдоним в ORDER BY клауза.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MariaDB Connector/Python бета вече е наличен

  2. Автоматизация на базата данни зад новата електронна самоличност на Швеция Freja eID

  3. MariaDB JSON_CONTAINS_PATH() Обяснено

  4. MySQL и MariaDB кеширане на заявки с ProxySQL и ClusterControl

  5. MariaDB CHARACTER_LENGTH() Обяснено