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

Napraw „BŁĄD 1250 (42000):Tabela „…” z jednego z SELECTów nie może być użyta w klauzuli ORDER” w MariaDB

Jeśli otrzymujesz komunikat „BŁĄD 1250 (42000):Tabela '…' z jednej z opcji SELECT nie może być użyta w klauzuli ORDER”, jest to prawdopodobnie spowodowane kwalifikacją nazwy kolumny z jej nazwą tabeli, gdy używasz operatora, takiego jak UNION , INTERSECT lub EXCEPT w MariaDB.

Aby to naprawić, usuń nazwę tabeli lub użyj aliasu kolumny.

Przykład błędu

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

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

Wynik:

ERROR 1250 (42000): Table 'Teachers' from one of the SELECTs cannot be used in ORDER clause

W tym przypadku próbowałem uporządkować wyniki według TeacherName kolumna, ale zakwalifikowałem tę kolumnę nazwą tabeli (użyłem Teachers.TeacherName odwoływać się do nazwy kolumny).

Tabele referencyjne takie jak ta nie działają podczas porządkowania wyników UNION działanie w MariaDB. To samo dotyczy porządkowania wyników INTERSECT operator i EXCEPT operatora.

Rozwiązanie 1

Jednym ze sposobów rozwiązania tego problemu jest usunięcie nazwy tabeli z ORDER BY klauzula:

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

Rozwiązanie 2

Innym sposobem, aby to naprawić, jest użycie aliasu dla kolumny:

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

Dzięki tej opcji przypisujemy alias do kolumny, a następnie odwołujemy się do tego aliasu w ORDER BY klauzula.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 4 sposoby na sortowanie bazy danych w MariaDB

  2. 4 funkcje, które zwracają minuty z wartości czasu w MariaDB

  3. Nazwane polecenia MariaDB

  4. Uruchamianie zapytań analizy Big Data przy użyciu SQL i Presto

  5. MariaDB SESSION_USER() Objaśnienie