Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/06/2009, 03:18
clinisbut
 
Fecha de Ingreso: diciembre-2004
Mensajes: 278
Antigüedad: 19 años, 4 meses
Puntos: 0
Left join con problemas

Hola a todos.

Tengo un problema con una consulta, la cual no me da los resultados esperados.
Mis tablas son las siguientes (simplificadas)
--pedidos--
id


--conceptos--
id
id_pedido


--facturas--
id
id_pedido
id_concepto


La cuestion es que para un pedido, quiero contar cuantos conceptos tiene, pero tambien quiero contar cuantas facturas se han rellenado (cada factura es la factura de uno de estos conceptos, la suma de todos los conceptos es el pedido).

Lo intento de la siguiente manera:
Código:
SELECT COUNT(facturas.id) AS num, COUNT(conceptos.id) as total
FROM pedidos LEFT JOIN conceptos ON ( conceptos.id_pedido=pedidos.id)
LEFT JOIN facturas ON ( facturas.id_pedido=pedidos.id )
GROUP BY pedidos.id
(La escribo de memoria, igual hay algun fallo)

Lo que obtengo son unos resultados totalmente desproporcionados: count (ambos) me devuelve en ocasiones valores por encima de 500 cuando lo tipico es <20.

Además de una lentitud insoportable (5 minutos).

El tamaño de estas tablas no es exagerado, no llega a 3000 resultados por tabla (la mas grande quizá sea la tabla conceptos).
Sospecho que se esta cruzando todo multiples veces por la lentitud y los resultados de count.

Que hago mal?
Muchas gracias.