Bạn đang thực hiện một nhóm group by
(3 cột) với 5 cột không tổng hợp trong danh sách chọn. Ngoài ra, điều đó không quan trọng, không có tổng hợp nào trong đầu ra của cột.
MySQL coi đó là một distinct
(đối với 3 cột) và trả về hàng đầu tiên mà nó gặp trong bộ đệm MRU và nếu không có bộ đệm, những hàng đầu tiên gặp trong chỉ mục được phân nhóm hoặc thứ tự vật lý để đáp ứng 2 cột không được nhóm theo.
Nói cách khác, đó là lỗi của người dùng. A snafu. Tôi khuyên bạn nên làm sạch ý định của mình với GROUP BY
.
Có phần liên quan, hãy đọc câu trả lời gần đây của tôi Tại đây
liên quan đến ONLY_FULL_GROUP_BY
. Xem ở cuối liên kết đó là Xử lý MySQL của NHÓM THEO
mà theo quan điểm của tôi là sự phủ nhận các vấn đề thực sự và các vấn đề không phải tiêu chuẩn mà MySQL cho phép, điều này hiển thị dữ liệu bất ngờ và khó giải thích do vi phạm Tiêu chuẩn đó.
Vậy nhóm phát triển MySQL đã làm gì? Họ đã triển khai tiêu chuẩn theo mặc định (bắt đầu từ phiên bản 5.7) để không cho phép các loại truy vấn bạn vừa thực hiện.
Chỉnh sửa1
Truy vấn của bạn, không có GROUP BY
nhưng với một đơn đặt hàng order by newGroups.id,people.id
, trên máy chủ phiên bản 5.7.14: