Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/01/2012, 10:52
mikexloo
 
Fecha de Ingreso: mayo-2011
Mensajes: 25
Antigüedad: 12 años, 11 meses
Puntos: 1
Contar un valor con una doble coincidencia

Estas 2 lineas son solo referencia a lo que deberia tener el query:
SELECT * FROM tabla1 AS t1 RIGHT JOIN tabla2 AS t2
ON t1.id=t2.id WHERE t1.parent_id=0 => esto es el join Es decir todos los tabla1.id del 1 al 4.

IFNULL(COUNT(t3.service),0) =>esto hace que me devuelva 0 en lugar de NULL asi puedo contar los valores inclusive los 0

Necesito añadir un valor que es una suma en tabla3

Esto es lo que necesito ademas del join entre tabla1 y tabla 2 que no es mayor problema . Sumar todos los tabla3.service donde tabla3.service = (tabla1.srt_order=tabla1.parent_id) es decir para el tabla1.id = 1 debera sumar tabla3.service = 5 y 6 (tiene el "parent_id = 1" que es el sort_order de "tabla1.id = 1")

tabla1
id parent_id srt_order
1---- 0 ------------1
2 ----0 ------------2
3 ----0 ------------3
4 ----0------------ 4
5 ----1 ------------0
6 ----1 ------------0
7 ----2 ------------0
8---- 3 ------------0
9 ----3 ------------0
10 ---4 ----------- 0

tabla2
id descr other
1 ---0 -----1
2 ---0 -----2
3 ---0----- 3
4 ---0 -----4

tabla 3
id service
1 ---5
2 ---5
3 ---6
4 ---6
5 ---7
6 ---8

Ejemplo
El primer y seg valor devuelto deberia ser :
id parent_id srt_order descr COUNT(service)
1---- 0 -------1---------- 0 --------4
2 ----0 -------2 ----------0 --------1

este query me suma todos los service sin diferenciarlos por t1.parent_id ni t1.srt_order:
"SELECT t1.*,t2.*, IFNULL(COUNT(t3.service),0) AS count FROM tabla3 AS t3 , tabla1 AS t1 RIGHT JOIN tabla2 AS t2
ON t1.id = t2.id WHERE t1.parent_id=0 GROUP BY t1.id"
y este otro me devuelve "count" correcto , unido solo tabla1 y tabla3
"SELECT t1.*, IFNULL(COUNT(t2.service_categorie),0) AS count
FROM tabla1 AS t1 LEFT JOIN tabla3 AS t3 ON t1.id = t3.service
WHERE t1.srt_order=0 GROUP BY t1.parent_id"
MI problema diria es una cuestion de sintaxis y union entre ambos querys
Muchas gracias por la ayuda

Última edición por mikexloo; 29/01/2012 a las 17:50