Ver Mensaje Individual
  #4 (permalink)  
Antiguo 16/05/2011, 06:14
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: 16 años, 5 meses
Puntos: 2658
Respuesta: Consulta con dos Count

Cita:
Pues directamente no están relacionadas,
Si no están relacionadas no puedes usar INNER JOIN porque el resultado es irracional. Estarías mezclando cosas incompatibles; como quien quiere saber cuantas facturas y remitos tiene un cliente, pero para ello hace un INNER JOIN entre el detalle de las facturas y los remitos. No son cosas que tengan una relación 1:1, por lo que la cuenta da cualquier cosa.
El error es que si lo que quieres es contar los torneos y retos en que intervino un usuario, lo que tienes que relacionar es a los Usuarios con los Retos y con los Torneos, y no usando INNER JOIN sino LEFT JOIN, ya que uno de ellos puede dar NULL en algún momento.
Algo como:
Código MySQL:
Ver original
  1.     U.idUsuario,
  2.     U.nombreUsuario,
  3.     COUNT(T.idTorneo) TorneosGanados,
  4.     COUNT(R.idReto) RetosRealizados
  5.     Usuarios U
  6.     LEFT JOIN Torneos T ON U.idUser = T.idUserGanador
  7.     LEFT JOIN Retos R ON U.idUser = R.idUserGanador;

Recuerda: Si dos tablas se vinculan a una tercera, no implica necesariamente que se vinculen entre sí. Sólo existe transitividad si los registros de ambas tienen efectivamente alguna relación, es decir, si Torneos dependiese de Retos o viceversa.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)