El 15/12/14 a las 21:17, Edwin Quijada escribió:
> Hola!
> Estoy haciedno un select que implica dos tablas , es mas bien un except, 
> hasta aho todo bien ya lo hice pero ando buscando una forma un poco mas 
> rapida de lograr lo que quiero
> create table A(       fid int,        fbanco int,     name varchar(20),       
> fecha timestamp );      create table B( pid int,        user varchar(20),     
>   address varchar(30),    fecha_Actual date )
> Necesito los registros que estan en A pero no estan en B, hice algo como esto
> select fid,fbanco,fecha from A where fbanco = 1 AND fid NOT IN(select pid 
> FROM B ) group by 1,2,3

SELECT fid, fbanco, fecha FROM A LEFT OUTER JOIN B ON (A.fid=B.pid)
WHERE B.pid IS NULL
GROUP BY 1,2,3;

Ese subselect con el IN va a ser muy lento con la cantidad de registros
que tiene la tabla B. Es mucho más optimo unir las tablas y filtrar las
que tuplas de la tabla A que no tienen su correspondiente referencia en B.

Saludos,

-- 
Martín Marqués                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Reply via email to