tengo 2 tablas: miembros y comentarios. Selecciono todos los miembros y luego me uno a los comentarios. Pero en los comentarios, estoy seleccionando una SUMA de puntos, y si el usuario nunca comentó, no puedo obtener ese usuario en la lista ?!MySql seleccionando el valor predeterminado si no hay resultados?
Así cómo seleccionar el valor predeterminado de SUMA a ser 0 si el usuario nunca se ha comentado, o alguna otra solución:
SELECT c.comment_id AS item_id, m.member_id AS member_id, m.avatar,
SUM(c.vote_value) AS vote_value, SUM(c.best) AS best,
SUM(c.vote_value) + SUM(c.best)*10 AS total
FROM members m
LEFT JOIN comments c ON m.member_id = c.author_id
GROUP BY c.author_id
ORDER BY m.member_id DESC
LIMIT 0, 20
EDIT:
Voy a tratar de explicar .. Así que hay 2 tablas, miembros y comentarios. Necesito una lista de todos los usuarios con ranking. Los comentarios contienen todos los votos y las mejores respuestas.
Por lo tanto, necesito una lista de todos los usuarios, y ellos anotan.
miembros tabla:
member_id - username - avatar
Comentarios mesa
comment_id - author_id - vote_value - best (0 OR 1)
también trató de seleccionar entre comentarios y unirse a miembros, pero lo mismo otra vez :(
¿Puede proporcionar algunos datos de ejemplo con un resultado esperado? No uso MySQL, así que tal vez tengan alguna sintaxis de acceso directo, pero están AGRANDANDO en una sola columna pero tienen varias columnas no agregadas en su SELECT –
@Tom H .: MySQL realmente permite esta sintaxis: [GROUP BY y HAVING with Hidden Columns] (http://dev.mysql.com/doc/refman/5.0/en/group-by-hidden-columns.html). –
Gracias Peter. Sabía que al menos uno de los principales RDBMS permitía eso, pero no podía recordar cuál. Sin embargo, dado que permite agrupaciones "ilógicas", podría dar como resultado datos "faltantes" porque "Al usar esta función, todas las filas de cada grupo deben tener los mismos valores para las columnas que se omiten de la parte GROUP BY. El servidor es gratuito para devolver cualquier valor del grupo, por lo que los resultados son indeterminados a menos que todos los valores sean los mismos ". c.comment_id puede no ser siempre el mismo para un c.author_id dado. –