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

MySql chọn giá trị mặc định nếu không có kết quả?

Tôi không chắc tại sao bạn lại đưa comment_id vào danh sách CHỌN của mình nếu bạn chỉ muốn người dùng và thứ hạng của họ. Bạn có muốn chỉ xếp hạng của họ trên nhận xét cụ thể đó không? Tôi sẽ đưa ra một giải pháp cho bây giờ giả sử bạn chỉ muốn có một danh sách thành viên đầy đủ với thứ hạng:

SELECT
    M.member_id,
    M.user_id,
    M.avatar,
    COALESCE(SUM(C.vote_value), 0) AS vote_value_sum,
    COALESCE(SUM(C.best), 0) AS best_sum,
    COALESCE(SUM(C.vote_value), 0) + SUM(C.best) * 10 AS total_value
FROM
    Members M
LEFT OUTER JOIN Comments C ON
    C.author_id = M.member_id
GROUP BY
    M.member_id
ORDER BY
    total_value DESC
LIMIT 0, 20

(điều này giả định rằng vote_value và tốt nhất là KHÔNG phải cột NULL hoặc MySQL sẽ bỏ qua những cột đó khi tính toán giá trị SUM - Tôi tin rằng điều đó đúng, nhưng tôi chưa kiểm tra điều đó)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. # 1366 - Giá trị số nguyên không chính xác:MYsql

  2. CHÈN VÀO hoặc CẬP NHẬT với hai điều kiện

  3. Lưu trữ MySQL trên Azure, Dịch vụ cơ sở dữ liệu đám mây được quản lý hoàn toàn ra mắt tại ScaleGrid

  4. Chuyển đổi một IP thành Long trong MySQL

  5. MySQL Giá trị ngày giờ không chính xác:'0000-00-00 00:00:00'