Hola Lista Empleando except funciona mejor:
SELECT A.fid,A.fbanco,A.fecha FROM A JOIN ( SELECT fid FROM A EXCEPT SELECT pid FROM B ) as C on A.fid=C.fid WHERE A.fbanco = 1 GROUP BY 1,2,3 El 15 de diciembre de 2014, 7:17 p. m., Edwin Quijada< listas_quij...@hotmail.com> 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 > > Esto funciona pero es un poco lento , alguien podria darme una idea de > hacer algo un poco mas optimo. La tabla A tiene 300K y la B 200K. > > En otras palabras quiero todos los que estan en A pero no en B pero > agrupados ya que A es una tabla de detalle por eso es que agrupo. Pense en > una vista pero las vistas no se pueden indexar , o si ? > > Gracias > -- Cordialmente, Ing. Hellmuth I. Vargas S. Esp. Telemática y Negocios por Internet Oracle Database 10g Administrator Certified Associate EnterpriseDB Certified PostgreSQL 9.3 Associate