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

como eliminar id's duplicadas

Estas en el tema de como eliminar id's duplicadas en el foro de Mysql en Foros del Web. buenas, tengo la siguiente tabla (mas bien es una relacion) plataforma_juego: id_juego || id_plataforma || nota_usuarios CLAVES PRIMARIAS: id_juego, id_plataforma quiero hacer una consulta que ...
  #1 (permalink)  
Antiguo 21/04/2011, 16:23
 
Fecha de Ingreso: abril-2011
Ubicación: Motril
Mensajes: 49
Antigüedad: 13 años
Puntos: 1
como eliminar id's duplicadas

buenas,
tengo la siguiente tabla (mas bien es una relacion)

plataforma_juego:
id_juego || id_plataforma || nota_usuarios

CLAVES PRIMARIAS: id_juego, id_plataforma


quiero hacer una consulta que me devuelva el id de los 10 mejores juegos, pero que no se repita el juego para cada plataforma.

Es decir, si el juego A tiene un 7 para la plataforma P1, y un 9 para la plataforma P2, que me devuelva el resultado juego:A,plataforma:p2,nota:9
eliminado la tupla juego:A,plataforma:p1,nota:7

He probado con la siguiente consulta:

SELECT distinct id_juego,id_plataforma,nota_usuarios FROM plataforma_juego ORDER BY nota_usuarios DESC LIMIT 10

si hago esto, me repite las id's de los juegos.

si uso group by id_juego no me repite las id's, pero el problema es que en ese caso me coge la primera nota que encuentra para cada juego, y no la mejor nota de este

¿alguna otra opcion para hacer esto?
  #2 (permalink)  
Antiguo 21/04/2011, 16:41
Avatar de leac3  
Fecha de Ingreso: abril-2007
Ubicación: Valencia, pero mi mente y corazon estan en San Francisco.
Mensajes: 147
Antigüedad: 17 años
Puntos: 4
Respuesta: como eliminar id's duplicadas

a ver si entendi, tu quieres obtener los 10 juegos que tengan las notas mas altas, pero que no se repita el mismo titulo para cada plataforma en el caso de que un mismo titulo (o juego) tenga una puntuacion alta en XBOX y a la vez en PC. Asi es?

Necesito saber como estas tratando el id_juego. El juego A para PC tiene el mismo id para el juego A para XBOX?
  #3 (permalink)  
Antiguo 21/04/2011, 16:56
 
Fecha de Ingreso: abril-2011
Ubicación: Motril
Mensajes: 49
Antigüedad: 13 años
Puntos: 1
Respuesta: como eliminar id's duplicadas

Si asi es como funciona, el juego esta solo una vez en su tabla, y tiene distintas notas segun la plataforma. Te pongo un ejemplo mas practico:

tabla juego:
id=1, nombre=GTA ...

tabla plataforma:
id=1,nombre=PC,...
id=2,nombre=XBOX,...

plataforma_juego:
id_juego=1,id_plataforma=1,nota=7 // El juego GTA tiene un 7 para la plataforma PC
id_juego=1,id_plataforma=2,nota=10 // El juego GTA tiene un 10 para la plataforma XBOX

(Las tablas tienen mas campos que no pongo xq aki no son relevantes...)

Bien, pues si tubiera solo esto, me gustaria que me mostrara el resultado sigi¡uiente:
id_juego=1,id_plataforma=2,nota=10

Me quedo con la id del juego sin repetir, y con la plataforma para la que mas nota ha obtenido.
  #4 (permalink)  
Antiguo 22/04/2011, 13:45
 
Fecha de Ingreso: abril-2011
Ubicación: Motril
Mensajes: 49
Antigüedad: 13 años
Puntos: 1
Pregunta Respuesta: como eliminar id's duplicadas

¿¿nadie es capaz de resolver esta consulta??
  #5 (permalink)  
Antiguo 22/04/2011, 14:27
Avatar de Copia  
Fecha de Ingreso: noviembre-2009
Mensajes: 309
Antigüedad: 14 años, 4 meses
Puntos: 4
Respuesta: como eliminar id's duplicadas

Oe men veras que si se puede si se piensa un rato:
Código SQL:
Ver original
  1. SELECT idjuego, idplataforma, MAX(nota)
  2. FROM plataforma_juego
  3. GROUP BY idjuego
  4. LIMIT 10;
__________________
Dejando una huella de mi existencia por la red en http://tiricaya.com
  #6 (permalink)  
Antiguo 23/04/2011, 09:45
 
Fecha de Ingreso: abril-2011
Ubicación: Motril
Mensajes: 49
Antigüedad: 13 años
Puntos: 1
Respuesta: como eliminar id's duplicadas

Gracias. Lo comprendí y me funciono perfectamente.

Además me ayudó a hacer otras cosas que quería.... ;)

Etiquetas: duplicadas
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

SíEste tema le ha gustado a 1 personas




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