phpMyAdmin
 sql >> Cơ Sở Dữ Liệu >  >> Database Tools >> phpMyAdmin

Tại sao tôi nhận được giá trị NULL trên Left Join?

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:




  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. lỗi nhập cơ sở dữ liệu phpMyadmin # 1046 - Không có cơ sở dữ liệu nào được chọn

  2. Quan hệ nội bộ làm gì trong phpMyAdmin cho bảng MyISAM?

  3. Biểu tượng phpMyAdmin (hộp sách?) Bên cạnh cơ sở dữ liệu nhất định có nghĩa là gì?

  4. mysql:Lỗi cú pháp DELIMITER ở dòng 1

  5. Làm cách nào để xuất / lưu ERD dưới dạng PDF hoặc dưới dạng hình ảnh trong phpMyAdmin?