Simular LEFT JOIN

07/03/2005 - 15:23 por Ody Barrera | Informe spam
Hola gente del grupo, quisiera saber si conocen de alguna forma de simular un
LEFT JOIN o RIGHT JOIN con la clausula WHERE de la sentencia SELECT.

Espero que puedan ayudarme, Saludos.

Preguntas similare

Leer las respuestas

#1 Maxi
07/03/2005 - 15:30 | Informe spam
Hola, si es para usarlo en sqlserver ni te lo recomiendo pero la emulacion
es asi

LEFT

*
RIGHT

=*

Pero como te repito, en sqlserver usa LEFT, RIGHT


Salu2
Maxi


"Ody Barrera" <Ody escribió en el mensaje
news:
Hola gente del grupo, quisiera saber si conocen de alguna forma de simular
un
LEFT JOIN o RIGHT JOIN con la clausula WHERE de la sentencia SELECT.

Espero que puedan ayudarme, Saludos.

Respuesta Responder a este mensaje
#2 Ody Barrera
07/03/2005 - 16:01 | Informe spam
Hola Maxi:

Gracias por la repuesta pero me gustaría que me detalles cuales son los
inconvenientes de emular el LEFT o RIGHT JOIN.

Saludos

"Maxi" wrote:

Hola, si es para usarlo en sqlserver ni te lo recomiendo pero la emulacion
es asi

LEFT

*>
RIGHT

=*

Pero como te repito, en sqlserver usa LEFT, RIGHT


Salu2
Maxi


"Ody Barrera" <Ody escribió en el mensaje
news:
> Hola gente del grupo, quisiera saber si conocen de alguna forma de simular
> un
> LEFT JOIN o RIGHT JOIN con la clausula WHERE de la sentencia SELECT.
>
> Espero que puedan ayudarme, Saludos.
>



Respuesta Responder a este mensaje
#3 Alejandro Mesa
07/03/2005 - 16:03 | Informe spam
Ody,

Como dijo Maxi, puedes usar *= para LEFT o =* para RIGHT. Esta es la forma
antigua y no ANSI. Microsoft recomienda el uso de la nueva forma ANSI,
poniendo la expresion en la clausula FROM. Por que Microsoft recomienda la
nueva forma?. La respuesta esta en la confusion que podria traer al tratar de
escribir una sentencia, en la forma antigua y otra ANSI, para encontrar las
filas que existen en tabla t1 y que no existen en tabla t2.

Ejemplo:

declare @t1 table (colA int)
declare @t2 table (colA int)

insert into @t1 values(1)
insert into @t1 values(2)

insert into @t2 values(1)

select
*
from
@t1 as t1
left outer join
@t2 as t2
on t1.colA = t2.colA
where
t2.colA is null;

select
*
from
@t1 as t1, @t2 as t2
where
t1.colA *= t2.colA
and t2.colA is null;

select
a.t1_colA,
a.t2_colA
from
(
select
t1.colA,
t2.colA
from
@t1 as t1, @t2 as t2
where
t1.colA *= t2.colA
) as a(t1_colA, t2_colA)
where
a.t2_colA is null;


AMB

"Ody Barrera" wrote:

Hola gente del grupo, quisiera saber si conocen de alguna forma de simular un
LEFT JOIN o RIGHT JOIN con la clausula WHERE de la sentencia SELECT.

Espero que puedan ayudarme, Saludos.

Respuesta Responder a este mensaje
#4 Ricardo Passians
07/03/2005 - 16:09 | Informe spam
Y porqué no hacerlo correctamente en la cláusula FROM ? Lo que dices se
puede pero no es recomendado.

"Ody Barrera" <Ody wrote in message
news:
Hola gente del grupo, quisiera saber si conocen de alguna forma de simular


un
LEFT JOIN o RIGHT JOIN con la clausula WHERE de la sentencia SELECT.

Espero que puedan ayudarme, Saludos.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida