Câu trả lời ngắn gọn:
- tham chiếu đến bí danh trong danh sách CHỌN hoặc
- Biểu thức bí danh
Tài liệu duy nhất tôi tìm thấy về vấn đề này cho đến nay là: https:// bug .mysql.com / bug.php? id =79549
Trong liên kết đó có nội dung sau:
[9 tháng 12, 2015 15:35] Roy Lyseng ... Đây là thông tin cơ bản dài hơn cho quyết định ban đầu:
Trái ngược với tham chiếu đến bí danh trong truy vấn con trong mệnh đề WHERE (và trong GROUP BY, cho vấn đề đó), không có lý do gì (ngoại trừ tuân thủ tiêu chuẩn) mà chúng tôi không cho phép tham chiếu đến bí danh trong danh sách CHỌN , vì chúng sẽ có sẵn trong cùng một giai đoạn thực thi truy vấn. Nhưng hỗ trợ trong 5.6 khá tùy tiện:
Cho điều này:tạo bảng t1 (a int, b int),
Bí danh trong danh sách CHỌN không hợp lệ:
select a+b as c,c+1 from t1;
Nhưng trong một truy vấn con, tham chiếu đến c là hợp lệ:
select a+b as c,(select c+1) from t1;
Và truy vấn con phải đứng sau định nghĩa của bí danh:
select (select c+1),a+b as c from t1;
Vì vậy, có thể dễ dàng nói rằng hỗ trợ tham chiếu đến bí danh trong danh sách CHỌN khá đặc biệt. Tuy nhiên, chúng tôi sẽ cố gắng thực hiện lại giải pháp cũ, nhưng không cố gắng làm sạch các lỗ hổng rõ ràng trong hỗ trợ cho tính năng này. Nhưng bí danh tham chiếu trong các truy vấn con trong mệnh đề WHERE sẽ không được thực hiện lại.
Tôi vẫn đang tìm kiếm tài liệu ngoài báo cáo lỗi mô tả chức năng này trong các tài liệu tiêu chuẩn; nhưng cho đến nay không có may mắn.