Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Perbaiki "ERROR 1250 (42000):Tabel '...' dari salah satu SELECT tidak dapat digunakan dalam klausa ORDER global" saat menggunakan UNION di MySQL

Jika Anda mendapatkan kesalahan yang berbunyi “ERROR 1250 (42000):Tabel ‘…’ dari salah satu SELECT tidak dapat digunakan dalam klausa ORDER global” saat menggunakan UNION klausa dalam kueri MySQL, mungkin karena Anda mengkualifikasikan nama kolom dengan nama tabelnya.

Ini tidak berfungsi di MySQL.

Untuk memperbaiki masalah ini, 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 global ORDER clause

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

MySQL tidak mengizinkan tabel direferensikan dengan cara ini saat memesan hasil UNION operasi.

Solusi 1

Salah satu cara untuk memperbaikinya adalah dengan menghapus nama tabel dari ORDER BY klausa:

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

Hasil:

+-------------+
| TeacherName |
+-------------+
| Ben         |
| Bill        |
| Cathy       |
| Ein         |
| Faye        |
| Jet         |
| Spike       |
| Warren      |
+-------------+

Solusi 2

Jika opsi sebelumnya tidak cocok, cara lain untuk memperbaiki masalah adalah dengan menggunakan alias. Dengan kata lain, tetapkan alias ke kolom, lalu rujuk alias itu di ORDER BY klausa:

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

Hasil:

+--------+
| t      |
+--------+
| Ben    |
| Bill   |
| Cathy  |
| Ein    |
| Faye   |
| Jet    |
| Spike  |
| Warren |
+--------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ambil Gambar yang disimpan sebagai BLOB pada MYSQL DB

  2. SQL:Apa Order By default dari kueri?

  3. Menginstal MySQL-python

  4. Panduan lengkap tentang cara menggunakan MySQL

  5. GALAT 1067 (42000):Nilai default tidak valid untuk 'created_at'