Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Mysql (http://www.forosdelweb.com/f86/)
-   -   problema con join (http://www.forosdelweb.com/f86/problema-con-join-419647/)

amnix 23/08/2006 15:16

problema con join
 
a ver si me se explicr y si alguien me ayuda
tengo este Query
Código PHP:

SELECT a.id_tt as Ticket,e.dsc_ttstatus as Status,a.id_user as 'Creado por',
a.id_proveedor as Proveedor,a.fec_solicitud as 'Fecha de solicitud',          
a.fec_autorizacion as 'Fecha de autorizacion'a.fec_entrega as 'Fecha de entrega'
f.fec_actualizacion as 'Fecha de Ejecucion',
a.id_status
FROM  tt_trouble_ticket a
tt_cat_status ett_log_ticket f
WHERE a
.id_status e.id_status 
AND a.fec_solicitud >= DATE_ADD('2006-08-23'INTERVAL -90 DAY)
AND 
f.id_statusac 6
AND a.id_tt f.id_tt
ORDER BY a
.fec_solicitud 

este query funciona a medias, porque en la tabla a hay campos que en la tabla f no existen, como hacer para que me traiga los registros de a auqneu no existan en f debido a la condicion -AND a.id_tt = f.id_tt-

en Sybase es asi: AND a.id_tt *= f.id_tt con el asterisco lo indicas, pero en MySQL alguien sabe como, siquiera recuerdenme como se llama esta propiedad :D

nacho_99i 23/08/2006 15:58

En MSQL tambien es como tu dices y en ORCALE es (+)
La única forma que encontre en mysql es crear la relacion en el from, si bien la de uno a uno en el where se puede usar, la de uno a varios no encontre la forma. Por eso te recomiendo esta. Donde la primer join es de uno a uno y el segundo es de todos los de a y solo aquello de f que sean iguales.
Espero haberte entendido y que esto te sirva.
Pd. Si te tira error de sintaxi proba sin usar los alias
Saludos

SELECT a.id_tt as Ticket,e.dsc_ttstatus as Status,a.id_user as 'Creado por',
a.id_proveedor as Proveedor,a.fec_solicitud as 'Fecha de solicitud',
a.fec_autorizacion as 'Fecha de autorizacion', a.fec_entrega as 'Fecha de entrega',
f.fec_actualizacion as 'Fecha de Ejecucion',
a.id_status
FROM tt_trouble_ticket a
Inner Join tt_cat_status e
ON a.id_status = e.id_status
Left Join tt_log_ticket f ON a.id_tt = f.id_tt
WHERE a.fec_solicitud >= DATE_ADD('2006-08-23', INTERVAL -90 DAY)
AND f.id_statusac = 6
ORDER BY a.fec_solicitud

amnix 24/08/2006 07:31

gracias si resulto el left join

nacho_99i 24/08/2006 08:11

De nada. Nos vemos


La zona horaria es GMT -6. Ahora son las 10:55.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.