
15/10/2008, 23:05
|
| | Fecha de Ingreso: junio-2007
Mensajes: 11
Antigüedad: 17 años, 9 meses Puntos: 0 | |
Respuesta: LEFT JOIN con dos argumentos en el ON Ufffff.... muchas gracias Jurena me has tirado la pinta para solucionar el problema. En tu consulta encontré la forma de lograr lo que quería, les muestro lo que quedó de la consulta para que vean la magnitud de la misma ya que las 3 tablas que describí eran solo el centro del problema.
Ahora falta probar como se comporta con mas de 20.000 registros, espero no tener problema con el servidor.
__________________________________________________ _______________ SELECT P.idpedido, B.descripcion AS brigada,T.nrolinea, EP.descripcion as estado,
P.equipo,T.horabaremo, P.nroacta, t1.equipo AS 'Equipo Instalado',
CONCAT('No') AS kit,
DATE_FORMAT(P.fechacumplido, '%d/%m/%Y') AS fechacumplido,
DATE_FORMAT(P.fechaconfirmado, '%d/%m/%Y') AS fechaconfirmado
FROM pedidos AS P,estadospedidos AS EP, brigadas AS B
RIGHT JOIN trabajos AS T
ON (T.brigadas_idbrigada = B.idbrigada)
LEFT JOIN
(
SELECT T.idtrabajo, CONCAT(M.idmaterial,' - ',M.nombre) AS equipo
FROM pedidos AS P,trabajos AS T
INNER JOIN materiales_trabajos AS MT
ON(MT.trabajos_idtrabajo = T.idtrabajo)
INNER JOIN materiales AS M
ON(M.idmaterial = MT.materiales_idmaterial)
WHERE M.categoriasmateriales_idcategoria = 1
AND P.trabajos_idtrabajo = T.idtrabajo
AND P.kit = 0
)
t1
ON T.idtrabajo = t1.idtrabajo
WHERE P.trabajos_idtrabajo = T.idtrabajo
AND P.kit = 0
AND EP.idestadopedido = P.estadospedidos_idestadopedido
__________________________________________________ _______________
Pues eso fué todo... un buen problemita para poner a prueba la lógica el el conocimiento de base de datos.
Muchas gracias por la ayuda.
Saludos |