Como Filtrar registros de dif. tablas ?

04/03/2005 - 01:01 por J Lara | Informe spam
Requiero una consulta donde tengo 3 tablas (T1,T2,T3)

select Campo1 from T1 where Campo1 not in (Select
* from T2) And not in (Select * from T3)

como veran deseo extraer el dato que este en la T1 pero
pero que no esten en las T2 y T3.. me sale si dejo fuera
la T3 pero si requiero todo completo.

Mil gracias por su apoyo.

Saludos

Preguntas similare

Leer las respuestas

#1 MAXI
04/03/2005 - 01:22 | Informe spam
Hola, podes usar LEFT JOIN, revisa en los manuales on line su sintaxis :)



Maxi
Buenos Aires - Argentina
Desarrollador .NET 3 Estrellas
Microsoft User Group (MUG)



"J Lara" escribió en el mensaje
news:
Requiero una consulta donde tengo 3 tablas (T1,T2,T3)

select Campo1 from T1 where Campo1 not in (Select
* from T2) And not in (Select * from T3)

como veran deseo extraer el dato que este en la T1 pero
pero que no esten en las T2 y T3.. me sale si dejo fuera
la T3 pero si requiero todo completo.

Mil gracias por su apoyo.

Saludos

Respuesta Responder a este mensaje
#2 Alejandro Mesa
04/03/2005 - 02:23 | Informe spam
J Lara,

Algunos ejemplos usando LEFT OUTER JOIN (como Maxi recomendo) y NOT EXISTS
(el cual incluyo por la ligica). Debes probar en tu maquina que version
resulta mejor para tus condiciones.

use northwind
go

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

insert into @t1 values(1)
insert into @t1 values(5)
insert into @t1 values(7)

insert into @t2 values(1)

insert into @t3 values(5)

select
t1.colA
from
@t1 as t1
left outer join
(
select colA from @t2
union all
select colA from @t3
) as u
on t1.colA = u.colA
where
u.colA is null

select
t1.colA
from
@t1 as t1
left outer join
(
@t2 as t2
full outer join
@t3 as t3
on t2.colA = t3.colA
)
on t1.colA = coalesce(t2.colA, t3.colA)
where
coalesce(t2.colA, t3.colA) is null

select
t1.colA
from
@t1 as t1
where
not exists(select * from @t2 as t2 where t2.colA = t1.colA)
and
not exists(select * from @t3 as t3 where t3.colA = t1.colA)
go


AMB

"J Lara" wrote:

Requiero una consulta donde tengo 3 tablas (T1,T2,T3)

select Campo1 from T1 where Campo1 not in (Select
* from T2) And not in (Select * from T3)

como veran deseo extraer el dato que este en la T1 pero
pero que no esten en las T2 y T3.. me sale si dejo fuera
la T3 pero si requiero todo completo.

Mil gracias por su apoyo.

Saludos

Respuesta Responder a este mensaje
#3 J Lara
04/03/2005 - 16:57 | Informe spam
Gracias Maxi y Alejandro... esto revisando sus comentarios.
he utilizado ligas con llave comun pero en Query de Excel
el detalle con esto es que cuando es mas complejo el Query
no visializa graficamente y hay que hacerlo "a pie", pero ya
estoy probando..

Gracias por su ayuda.

Saludos.

"Alejandro Mesa" wrote:

J Lara,

Algunos ejemplos usando LEFT OUTER JOIN (como Maxi recomendo) y NOT EXISTS
(el cual incluyo por la ligica). Debes probar en tu maquina que version
resulta mejor para tus condiciones.

use northwind
go

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

insert into @t1 values(1)
insert into @t1 values(5)
insert into @t1 values(7)

insert into @t2 values(1)

insert into @t3 values(5)

select
t1.colA
from
@t1 as t1
left outer join
(
select colA from @t2
union all
select colA from @t3
) as u
on t1.colA = u.colA
where
u.colA is null

select
t1.colA
from
@t1 as t1
left outer join
(
@t2 as t2
full outer join
@t3 as t3
on t2.colA = t3.colA
)
on t1.colA = coalesce(t2.colA, t3.colA)
where
coalesce(t2.colA, t3.colA) is null

select
t1.colA
from
@t1 as t1
where
not exists(select * from @t2 as t2 where t2.colA = t1.colA)
and
not exists(select * from @t3 as t3 where t3.colA = t1.colA)
go


AMB

"J Lara" wrote:

> Requiero una consulta donde tengo 3 tablas (T1,T2,T3)
>
> select Campo1 from T1 where Campo1 not in (Select
> * from T2) And not in (Select * from T3)
>
> como veran deseo extraer el dato que este en la T1 pero
> pero que no esten en las T2 y T3.. me sale si dejo fuera
> la T3 pero si requiero todo completo.
>
> Mil gracias por su apoyo.
>
> Saludos
>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida