Mysql
 sql >> база данни >  >> RDS >> Mysql

MySql избира стойност по подразбиране, ако няма резултати?

Не съм сигурен защо включвате comment_id в списъка си SELECT, ако просто искате потребители и тяхното класиране. Искате ли само тяхното класиране на този конкретен коментар? Засега ще дам решение, което предполага, че просто искате пълен списък с членове с класиране:

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

(това предполага, че vote_value и best НЕ са NULL колони или че MySQL ще ги пренебрегне при изчисляване на SUM стойности - вярвам, че е така, но не съм тествал това)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Използване на поле DATE като първичен ключ на измерение за дата с MySQL

  2. Грешка в MySQL 1264:стойност извън диапазона за колона

  3. Разбиране на подготвените изявления за PDO и обвързващите параметри

  4. MySQL актуализиране или преименуване на ключ в JSON

  5. Предотвратете дублиране на SQL записи