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

Cách giải quyết không có lỗi GROUP BY trong truy vấn mysql

Mỗi trường không được tổng hợp nên được nhóm lại.

Đây là hành vi tiêu chuẩn, trong mysql, phụ thuộc vào chế độ ONLY_FULL_GROUP_BY.
Chế độ này được bật mặc định trong> =5.7 .

select posts.id, post.user_id, count(likings.id) as likes_count
from posts
left join likings on likings.post_id = posts.id and likings.isActive= 1
group by posts.id, posts.user_id
order by likes_count desc 
limit 5

Hoặc, bạn có thể aggregate nó:

select posts.id, MIN(post.user_id), count(likings.id) as likes_count
from posts
left join likings on likings.post_id = posts.id and likings.isActive= 1
group by posts.id
order by likes_count desc 
limit 5

Theo cách khác - thay đổi sql_mode :

SET SESSION sql_mode = '';

Ngoài ra, bạn có thể chia nó thành 2 truy vấn:

  1. Nhận id tổng hợp và đăng
  2. Nhận dữ liệu bài đăng với id đã tìm nạp (với IN clause )


  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 để lấy Chiều dài / Giá trị cột mySql

  2. Bảng giữ Giá Đặc biệt ở đâu trong Magento?

  3. Codeigniter - nhiều kết nối cơ sở dữ liệu

  4. MySQL:# 1075 - Định nghĩa bảng không chính xác; autoincrement so với khóa khác?

  5. Quyền truy cập bị từ chối đối với người dùng 'root' @ 'localhost' trong khi cố gắng cấp đặc quyền. Làm cách nào để cấp đặc quyền?