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

Manejando LEFT JOIN en MySQL

Estas en el tema de Manejando LEFT JOIN en MySQL en el foro de Bases de Datos General en Foros del Web. Intento hacer una consulta con dos left joins, pero los resultados no son los esperados Consulta: Código: SELECT a.cliente, (sum(p.hores)/60) as horas, (sum(t.dineros)/60) as dineros ...
  #1 (permalink)  
Antiguo 18/11/2003, 10:38
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 3 meses
Puntos: 17
Manejando LEFT JOIN en MySQL

Intento hacer una consulta con dos left joins, pero los resultados no son los esperados

Consulta:
Código:
SELECT a.cliente, (sum(p.hores)/60) as horas, (sum(t.dineros)/60) as dineros
  FROM clientes c
  LEFT JOIN horarios p ON (p.id_client = c.id_client)
  LEFT JOIN dinero t ON (t.id_client = c.id_client)
  GROUP BY cliente
  HAVING horas > 0 OR dineros > 0
Debería dar:
12 - 15 - 10


Y da:
12 - 30 - 30

¿Por qué?

Porque hay dos registros en dinero y tres en horarios, y me multiplica los sum() de cada tabla por los registros de la otra.

Supongo que el truco estaría en usar una función diferente de sum() o en agrupar por algun otro campo. ¿Alguna idea?
__________________
M a l d i t o F r i k i
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 18:41.