Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Khắc phục “ERROR 1054 (42S22):Cột không xác định‘… ’trong‘ mệnh đề thứ tự ”khi sử dụng UNION trong MySQL

Nếu bạn gặp lỗi “1054 (42S22):Cột không xác định‘… ’trong‘ mệnh đề thứ tự ’” khi sử dụng UNION trong MySQL, có thể là do bạn đang cố gắng tham chiếu đến một cột bí danh theo tên cột của nó.

Khi sử dụng UNION trong MySQL, nếu một cột có bí danh, thì bạn phải sử dụng bí danh đó trong bất kỳ ORDER BY nào mệnh đề tham chiếu đến cột đó.

Vì vậy, để sửa lỗi, hãy đảm bảo tham chiếu cột theo bí danh của nó. Ngoài ra, bạn có thể xóa bí danh và tham chiếu trực tiếp đến tên cột.

Ví dụ về Lỗi

Dưới đây là một ví dụ về mã tạo ra lỗi:

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

Kết quả:

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

Ở đây, tôi đã cố gắng sắp xếp các kết quả theo TeacherName nhưng cột đó có bí danh. Thực tế là tôi không sử dụng bí danh trong ORDER BY mệnh đề đủ để tạo ra lỗi.

Giải pháp 1

Một cách để khắc phục sự cố này là sử dụng bí danh trong ORDER BY mệnh đề:

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

Kết quả:

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

Điều đó đã giải quyết được vấn đề.

Giải pháp 2

Một cách khác để làm điều đó là xóa hoàn toàn bí danh:

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

Kết quả:

+-------------+
| TeacherName |
+-------------+
| 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. Làm cách nào để liên kết các tham số với một truy vấn DB thô trong Laravel được sử dụng trên một mô hình?

  2. Tạo một trang web với MySQL

  3. Xác định tệp cấu hình MySQL nào đang được sử dụng

  4. Ví dụ về TIME () - MySQL

  5. Làm cách nào để kích hoạt Nhật ký truy vấn MySQL?