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

Поправете „ГРЕШКА 1054 (42S22):Неизвестна колона „colname“ в „клауза за поръчка“ в MariaDB

Ако получавате грешка „ГРЕШКА 1054 (42S22):Неизвестна колона „име на колона“ в „клауза за поръчка“ ” в MariaDB, възможно е да се опитвате да препратите колона с псевдоним по нейното име.

Това е често срещана грешка при изпълнение на заявки, които обединяват две или повече таблици. Това може да се случи и при използване на оператори като UNION , INTERSECT и EXCEPT .

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

За да поправите грешката, просто посочете колоната по нейния псевдоним.

Като алтернатива можете да премахнете изцяло псевдонима и да препратите директно името на колоната.

Пример за грешка

Ето пример за код, който създава грешката:

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

Резултат:

ERROR 1054 (42S22): Unknown column 'TeacherName' in 'order clause'

Тук не използвах псевдонима в ORDER BY клауза, довела до грешката.

Решение 1

Един от начините да коригирате този проблем е да използвате псевдонима в ORDER BY клауза:

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

Резултат:

+-------+
| t     |
+-------+
| Ben   |
| Cathy |
+-------+

В този случай псевдонимът става заглавка на колоната в резултата.

Решение 2

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

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

Резултат:

+-------------+
| TeacherName |
+-------------+
| Ben         |
| Cathy       |
+-------------+

Този път името на колоната става заглавка на колоната.


  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 JSON_MERGE() Обяснено

  2. Какво е MariaDB ColumnStore?

  3. 5 функции за извличане на номера на седмицата от дата в MariaDB

  4. 4 функции за получаване на час от времева стойност в MariaDB

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