Duda en consulta con registros vacíos en COUNT

Tengo una duda en una consulta.

Tenemos dos tablas, una con personas, y otra con valoraciones sobre estas personas, hay un campo en la tabla valoraciones que referencia a cada persona. Lo que necesito es una consulta que me liste todos los usuarios y me cuente cuantas valoraciones con un COUNT, esto esta claro.

El problema es cuando un usuario no tiene una valoración, en ese caso no sale en la lista de resultados..., he mirado IFNULL y similares, pero no doy con la tecla.

Cualquier ayuda sería bienvenida.

1 Respuesta

Respuesta
1

Pasame la estructura de las tablas.

Slds

Luis

Personas:

idPersona INT

strNombre VARCHAR

Valoraciones:

idValoracion INT

refUsuario INT (es la que relaciona una valoración con idPersona)

Bñasicamente sería eso

¿Un mismo usuario/persona puede tener de 0 a N valoraciones?


Efectivamente, y el resultado ha de ser mostrando ese número de valoraciones, aparte de los datos de la persona, por ejemplo:

Pepe 0

Luis 3

Pedro 89

etc...

OK y los usuarios/personas sin valoraciones no figuran en la tabla de valoraciones, ¿no?

Exacto, no figuran aun, porque no han sido valoradas

Hay varias formas, por ejemplo podes usar una subconsulta escalar para obtener la cantidad de valoraciones de cada usuario/persona:

SELECT idPersona, (SELECT COUNT(*) FROM Valoraciones v

                                                                       WHERE p.idPersona=v.refUsuario) AS Total

                FROM Personas p;

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas