Ver Mensaje Individual
  #6 (permalink)  
Antiguo 15/10/2008, 14:44
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: LEFT JOIN con dos argumentos en el ON

Cita:
Iniciado por m87laucha Ver Mensaje
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.