MariaDB
 sql >> Teknologi Basis Data >  >> RDS >> MariaDB

Perbaiki "ERROR 1250 (42000):Tabel '...' dari salah satu SELECT tidak dapat digunakan dalam klausa ORDER" di MariaDB

Jika Anda mendapatkan "ERROR 1250 (42000):Tabel '...' dari salah satu SELECT tidak dapat digunakan dalam klausa ORDER", itu mungkin karena Anda memenuhi syarat nama kolom dengan nama tabelnya saat menggunakan operator seperti UNION , INTERSECT , atau EXCEPT di MariaDB.

Untuk memperbaikinya, hapus nama tabel atau gunakan alias kolom.

Contoh Kesalahan

Berikut contoh kode yang menghasilkan kesalahan:

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

Hasil:

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

Dalam hal ini saya mencoba mengurutkan hasilnya dengan TeacherName kolom, tapi saya memenuhi syarat kolom itu dengan nama tabel (saya menggunakan Teachers.TeacherName untuk referensi nama kolom).

Tabel referensi seperti ini tidak berfungsi saat memesan hasil UNION operasi di MariaDB. Hal yang sama berlaku saat memesan hasil INTERSECT operator dan EXCEPT operator.

Solusi 1

Salah satu cara untuk memperbaiki masalah ini adalah dengan menghapus nama tabel dari ORDER BY klausa:

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

Solusi 2

Cara lain untuk memperbaikinya adalah dengan menggunakan alias untuk kolom:

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

Dengan opsi ini, kami menetapkan alias ke kolom, lalu merujuk alias itu di ORDER BY klausa.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dapatkan Ukuran Database di MariaDB

  2. Menggunakan Flashback MariaDB di Server MySQL

  3. Bagaimana HEX() Bekerja di MariaDB

  4. Bagaimana REGEXP Bekerja di MariaDB

  5. Mendorong Performa dalam Pengaturan Cloud Hibrida