Cita:
Iniciado por m87laucha
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)
SELECT trabajo.idtrabajo, t1.categoria FROM trabajo LEFT JOIN (SELECT distinct T.idtrabajo as trabajo, M.idcategoria as categoria
FROM trabajo AS T
INNER JOIN material_trabajo AS MT ON(MT.idtrabajo = T.idtrabajo)
INNER JOIN materiales AS M ON(M.idmaterial = MT.idmaterial)
WHERE M.idcategoria = 1)t1 ON trabajos.idtrabajo = t1.trabajo LEFT JOIN material_trabajo ON material_trabajo.idtrabajo = trabajo.idtrabajo LEFT JOIN material on material.idmaterial = material_trabajo.idmaterial
La idea es que primero localices mediante inner join los trabajos en los que se usan esos materiales, y luego que hagas un cruce de tablas en el que se muestren todos los trabajos, también aquellos en los que no se han usado esos materiales.
No lo he probado, pero esa es la idea.