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

MySql 5.7 Mệnh đề ORDER BY không nằm trong mệnh đề GROUP BY và chứa cột không được tổng hợp

Đây là truy vấn của bạn:

SELECT p.title, COUNT(t.qty) AS total 
-------^
FROM payments t LEFT JOIN
     products AS p 
     ON p.id = t.item 
WHERE t.user = 1 
GROUP BY t.item
---------^
ORDER BY t.created DESC;
---------^

Các địa điểm được chỉ ra có vấn đề. Lưu ý rằng SELECTGROUP BY đang đề cập đến cột khác nhau. Trong LEFT JOIN , bạn (khá nhiều) luôn muốn tổng hợp theo thứ gì đó trong đầu tiên bảng, không phải bảng thứ hai.

ORDER BY là một vấn đề khác. Bạn không tổng hợp theo cột này, vì vậy bạn cần quyết định giá trị nào bạn muốn. Tôi đoán MIN() hoặc MAX() :

SELECT p.title, COUNT(t.qty) AS total 
FROM payments t LEFT JOIN
     products AS p 
     ON p.id = t.item 
WHERE t.user = 1 
GROUP BY p.title
ORDER BY MAX(t.created) DESC;

Tôi cũng sẽ thêm COUNT(t.qty) đó là nghi ngờ. Thông thường qty đề cập đến "số lượng" và những gì bạn muốn là tổng:SUM(t.qty) .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MYSQL Chèn id từ bảng khác

  2. Làm cách nào để truy xuất tệp từ thư mục máy chủ bằng PHP và hiển thị / tải tệp đó xuống trang web bằng javascript?

  3. Mục nhập trùng lặp cho khóa chính trên MySQL

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

  5. Cập nhật div khi nhấp vào nút, khi nút được tạo bằng cách nhấp vào nút khác