MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

Napraw „BŁĄD 1054 (42S22):Nieznana kolumna „colname” w „klauzula zamówienia” w MariaDB

Jeśli otrzymujesz błąd „BŁĄD 1054 (42S22):Nieznana kolumna „nazwa_kolumny” w „klauzula zamówienia” ” w MariaDB może się zdarzyć, że próbujesz odwołać się do kolumny z aliasem według jej nazwy.

Jest to częsty błąd podczas uruchamiania zapytań łączących co najmniej dwie tabele. Może się to również zdarzyć podczas używania operatorów, takich jak UNION , INTERSECT i EXCEPT .

Ogólnie, jeśli kolumna ma alias, musisz użyć tego aliasu w dowolnym ORDER BY klauzula odwołująca się do tej kolumny.

Aby naprawić błąd, po prostu odwołaj się do kolumny za pomocą jej aliasu.

Alternatywnie możesz całkowicie usunąć alias i odnieść się bezpośrednio do nazwy kolumny.

Przykład błędu

Oto przykład kodu, który generuje błąd:

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

Wynik:

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

Tutaj nie użyłem aliasu w ORDER BY klauzula, która spowodowała błąd.

Rozwiązanie 1

Jednym ze sposobów rozwiązania tego problemu jest użycie aliasu w ORDER BY klauzula:

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

Wynik:

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

W takim przypadku alias staje się nagłówkiem kolumny w wyniku.

Rozwiązanie 2

Innym sposobem na to jest całkowite usunięcie aliasu:

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

Wynik:

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

Tym razem nazwa kolumny staje się nagłówkiem kolumny.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak działa FORMAT() w MariaDB?

  2. Jak wykonać kopię zapasową bazy danych Moodle MariaDB?

  3. Jak NOT REGEXP działa w MariaDB

  4. Jak działa WEIGHT_STRING() w MariaDB

  5. Porównanie MariaDB Enterprise Backup z ClusterControl Backup Management