Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

[SOLUCIONADO] Buscar usuario "ganador" (con más colores)

Estas en el tema de Buscar usuario "ganador" (con más colores) en el foro de Mysql en Foros del Web. Hola a todos. A ver si pueden ayudarme con esto, por favor, estoy hecho un lío con esto. Tengo 2 tablas que son: Usuarios IdUsuario ...
  #1 (permalink)  
Antiguo 29/12/2014, 12:20
Musiker
Invitado
 
Mensajes: n/a
Puntos:
Buscar usuario "ganador" (con más colores)

Hola a todos.

A ver si pueden ayudarme con esto, por favor, estoy hecho un lío con esto. Tengo 2 tablas que son:

Usuarios

IdUsuario
nombre

y otra que es:

Colores

IdUsuario
IdColor
Color
fecha

Lo que necesito es buscar el usuario que tenga más colores, es decir, el "ganador". He intentado hacerlo con count, pero no lo consigo. He intentado con "inner join", pero es muy confuso aun que con "Count".

He pensado también incluir un campo nuevo llamado "numColor" en la tabla "colores" que sea un contador, y que aumente cada vez que un usuario incluya un color, y así poder relacionar y contar el usuario que más colores tiene, pero no sé si es lo más adecuado. ¿Algún consejo / idea? Lo agradecería mucho.
  #2 (permalink)  
Antiguo 29/12/2014, 12:30
 
Fecha de Ingreso: enero-2008
Ubicación: Málaga - España
Mensajes: 346
Antigüedad: 16 años, 2 meses
Puntos: 13
Respuesta: Buscar usuario "ganador" (con más colores)

Ufff. mal diseño. El mismo color no debiera tener distinta ID, creo que necesitas tres tablas:

Usuarios
ID_USUARIO
NOMBRE_USUARIO
etc.
etc

COLORES
ID_COLOR
NOMBRE_COLOR
etc.
etc.

VOTOS (o lo que sea)
ID_VOTO
ID_USUARIO
ID_COLOR
etc.
etc.

A partir de ahi, ya tienes una logica para poder hacer consultas

ya puedes contar la cantidad de colores por usuarios
COUNT GROUP
Intentalo, y dinos que te falla
  #3 (permalink)  
Antiguo 29/12/2014, 16:12
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Buscar usuario "ganador" (con más colores)

Imaginemos que estas son tus tablas

Usuarios
IdUsuario
nombre


Colores

IdColor
Color

ColoresUsuarios
IdColorUsuario
IdUsuario
IdColor
fecha

Tienes que aclararnos si un Usuario puede obtener el mismo color en distintas fechas y que cuente varias veces, claro.

Si fuera así, prueba esto y nos dices:

Código MySQL:
Ver original
  1. SELECT u.nombre, COUNT(IdColorUsuario) totalcolores  FROM Usuarios u INNER JOIN ColoresUsuarios cu ON u.IdUsuario = cu.IdUsuario GROUP BY u.IdUsuario ORDER BY COUNT(IdColorUsuario) DESC
  #4 (permalink)  
Antiguo 30/12/2014, 03:19
Musiker
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Buscar usuario "ganador" (con más colores)

Muchísimas gracias por las respuestas a los 2, en serio. Sois unos cracks! La verdad es que nunca había trabajado con 3 tablas en la BD, así que voy a investigar cómo lo hago, ya que lo estoy haciendo en dreamweaver sin programar, es decir, usando los menús y las opciones del programa, y me costará tiempo.

Muchas gracias de nuevo!

Etiquetas: campo, ganador, join, tabla, usuario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:37.