Re: Query NOt In para optimizar

From: Martín Marqués <martin(at)2ndquadrant(dot)com>
To: Edwin Quijada <listas_quijada(at)hotmail(dot)com>, "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Query NOt In para optimizar
Date: 2014-12-16 10:27:28
Message-ID: 54900910.9050900@2ndquadrant.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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(at)postgresql(dot)org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Hellmuth Vargas 2014-12-16 13:07:52 Re: Query NOt In para optimizar
Previous Message jvenegasperu . 2014-12-16 03:42:37 Re: Query NOt In para optimizar