Ver Mensaje Individual
  #2 (permalink)  
Antiguo 28/01/2012, 15:26
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: JOIN dos tablas mas COUNT en una tercera

Código MySQL:
Ver original
  1. FROM categories AS t1 RIGHT JOIN tabla2 AS t2 ON t1.id=t2.id
  2. WHERE t1.order=0 IFNULL(COUNT(t3.service),0) AS count
  3. FROM tabla3
Si esto es lo que estás intentando, está completamente mal escrito.
¿Estás seguro de haber realizado esa consulta así?
En cualquier caso eso te está devolviendo, en su primer parte, todo lo que está en Tabla2, que coincida o no con Tabla1, pero también está devolviendo los que no coinciden de la Tabla2.
¿Eso es lo que quieres?
Además, no estás haciendo en esa consulta el correspondiente JOIN a la tercera tabla, ni obteniendo la lista de valores con qué comparar un campo determinado de las otras tablas, por cuando el segundo SELECT ... FROM... no está dentro de una subconsulta.

En cualquier caso deberías ser un poquitín más claro con lo que quieres:
1) Registros coincidentes entre Tabla1 y Tabla2, usando la PK de cada una como relación, obteniendo los ID iguales o menores a 12, los que en la Tabla1, tengan order entre 1 y 12, y también partent entre 1 y 12.
2) El resultado de esta tabla debe usarse para un JOIN tal que sume los valores de un campo, y que esté relacionado con las otras por medio del campo parent de la Tabla1...

Mira, a priori parece que hubieras intentado hacer una descripción genérica de un caso que no es este.
¿Podrías no hacernos perder el tiempo y postear el caso real que te ocupa, con los nombres reales de las tablas, los campos y los tipos de dato.
El planteo que haces es tán abstracto que resulta casi imposible hacer una interpretación que sirva para darte un ejemplo. Falta informacón crítica para la respuesta, como es el nivel de agregación (SUM() se usa con GROUP BY y tu no estás aclarando cómo se agrupa), no queda claro si la relación es entre la Tabla3 y la Tabla1 qué harás con los NULL que te devolverá ese RIGHT JOIN, y por sobre todo, no podemos inferir en qué consisten las relaciones, porque las FK no resultan muy claras.
Eso, sin contar conque esos campos, por los nombres que propones, te darán errores de sintaxis, porque usas palabras reservadas...

Por favor, pon el caso real, con los nombres reales y el modelo real. Las abstracciones no sirven en el 99% de los casos para poder responder cosas coherentes.

__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)