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