Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/10/2008, 17:50
m87laucha
 
Fecha de Ingreso: junio-2007
Mensajes: 11
Antigüedad: 16 años, 10 meses
Puntos: 0
LEFT JOIN con dos argumentos en el ON

Buenas, estoy teniendo un problema con una consulta que espero alguien pueda ayudarme. Es una mezcla de JOIN con otras restricciones.

Les describo:

Tablas:

TRABAJO
idtrabajo(PK)
fecha

MATERIAL_TRABAJO
idmaterial(FK)
idtrabajo(FK)
cantidad

MATERIAL
idmaterial(PK)
nombre
idcategoria(FK)

Quiero obtener lo siguiente:

Quiero obtener todos los trabajos junto a los materiales que sean de una categoría específica.
La consulta que estaba intentando hacer era la siguiente:

SELECT T.idtrabajo, M.idmaterial, MT.cantidad, M.nombre
FROM trabajos AS T
LEFT JOIN materiales_trabajos AS MT ON(MT.idtrabajo = T.idtrabajo)
LEFT JOIN materiales AS M ON(M.idmaterial = MT.idmaterial AND M.idcategoria = 1)

Pero no me filtra los materiales categoría 1 como yo quiero.

También probé con la siguiente manera:

SELECT T.idtrabajo, M.idmaterial, MT.cantidad, M.nombre
FROM trabajos AS T
LEFT JOIN materiales_trabajos AS MT ON(MT.idtrabajo = T.idtrabajo)
LEFT JOIN materiales AS M ON(M.idmaterial = MT.idmaterial)
WHERE M.idcategoria = 1

Pero no me muestra aquellos trabajos que no tienen materiales de es categoría.

Espero que alguien pueda ayudarme, la base de datos desgraciadamente no la armé yo y no la puedo modificar sino lo haría con muchas ganas porque no es está bien normalizada.

Saludos

Última edición por m87laucha; 14/10/2008 a las 17:57