Mysql
 sql >> Database >  >> RDS >> Mysql

MySql selezionando il valore predefinito se non ci sono risultati?

Non sono sicuro del motivo per cui stai includendo comment_id nel tuo elenco SELECT se vuoi solo utenti e le loro classifiche. Vuoi solo la loro classifica su quel particolare commento? Per ora darò una soluzione che presuppone che tu voglia solo un elenco completo dei membri con classifiche:

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

(questo presuppone che vote_value e best NON siano colonne NULL o che MySQL le ignorerà durante il calcolo dei valori SUM - credo di sì, ma non l'ho testato)