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:
(La escribo de memoria, igual hay algun fallo)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
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.