sql >> Base de Datos >  >> RDS >> Mysql

¿MySql selecciona el valor predeterminado si no hay resultados?

No estoy seguro de por qué incluye comment_id en su lista SELECT si solo desea usuarios y sus clasificaciones. ¿Quieres solo su clasificación en ese comentario en particular? Daré una solución por ahora que asume que solo desea una lista completa de miembros con clasificaciones:

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

(esto supone que vote_value y best NO son columnas NULL o que MySQL las ignorará al calcular los valores SUM; creo que sí, pero no lo he probado)