Ver Mensaje Individual
  #2 (permalink)  
Antiguo 29/05/2012, 10:35
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 2 meses
Puntos: 2658
Respuesta: Consulta relación muchos a muchos !!

Cita:
Una misión puede tener varios logros.
Queda una pregunta que tu descripción no aclara: ¿Un logro puede serlo de diferentes misiones, o debe serlo de una sola?
En el primer caso, es una relación N:N y faltaría una tabla, además de que la consulta se complica.
en el segundo es mas o menos simple. Sería algo como:
Código MySQL:
Ver original
  1. SELECT U.idusuario, M.idmision, COUNT(L.idmision) LogrosMisiones
  2. FROM usuarios U LEFT JOIN usuariosxmisiones UM ON U.idusuario = UM.idusuario
  3.           INNER JOIN misiones M ON M.idmision = UM.idmision
  4.           INNER JOIN logros L ON M.idmision = L.idmision
  5. GROUP BY U.idusuario, M.idmision;

La diferencia radica en que en el primer caso faltaría un LEFT JOIN entre las misiones y una tabla mision_logro, y la de logros se relaciona con esa tabla también.
Recuerda que siempre, una relación N:N entre dos entidades genera una tabla relacional que no aparece en los diagramas del modelo lógico, sino en el diagrama del modelo físico.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)