From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | Carlos Mendez <lucas1850(at)gmail(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: consulta diferencia entre 2 tablas |
Date: | 2009-08-13 17:11:19 |
Message-ID: | 20090813171119.GO5909@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Carlos Mendez escribió:
> Hola como estan,
>
> tengo 2 tablas que tienen datos de alumnos pero necesito saber que alumnos
> estan en una tabla pero no en la otra, los nombres de los campos son
> paterno,materno,nombre.
Quizas así (estan en tabla1 pero no en tabla2):
select paterno, materno, nombre from tabla1
except all
select paterno, materno, nombre from tabla2
Obviamente no puedes obtener el ID de tabla1 de esta manera. Pero
puedes usarlo en un subquery:
select * from tabla1 where
(paterno, materno, nombre) IN (
select paterno, materno, nombre from tabla1
except all
select paterno, materno, nombre from tabla2
);
También puedes intentar un LEFT JOIN:
select * from tabla1 left join tabla2 using (paterno, materno, nombre)
where tabla2.paterno is null and tabla2.materno is null and tabla2.nombre is null;
O los ya mencionados NOT IN y NOT EXISTS.
Obviamente tienes que tener mucho cuidado con los nombres repetidos.
--
Alvaro Herrera http://www.amazon.com/gp/registry/DXLWNGRJD34J
The easiest way to resolve [trivial code guidelines disputes] is to fire
one or both of the people involved. (Damian Conway)
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2009-08-13 17:13:22 | Re: Funcion para saber cuantas filas retorna una consulta |
Previous Message | Javier Chávez B. | 2009-08-13 16:47:37 | Re: consulta diferencia entre 2 tablas |