Re: Sacar datos de una tabla mientras no existan en otra.

From: Pablo Braulio <brulics(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Sacar datos de una tabla mientras no existan en otra.
Date: 2006-03-11 15:18:38
Message-ID: 200603111618.42577.brulics@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

El Sábado, 11 de Marzo de 2006 02:21, Alvaro Herrera escribió:
> Usa un outer join (heh, esta respuesta esta popular ultimamente!)
>
> Creo que es algo asi:
>
> select * from departamentos left join depart_personal on
> (departamentos.id = depart_personal.departamento)
> where depart_personal.departamento is null;
>
>
> Tambien se puede hacer con NOT EXISTS, pero creo que eso es menos
> eficiente.  Pruebalo y nos cuentas.

Bueno al final lo he conseguido, pero me temo que no he explicado bien mi
problema.

Tengo las siguientes tablas:

Los departamentos de una empresa:
aldiges=# SELECT id, nombre from departamentos where empresa = 1;
id | nombre
----+------------
5 | Almacén
3 | Matricería
7 | Calidad
2 | Producción
1 | Dirección
(5 filas)

Uno de los empleados de la empresa:
aldiges=# SELECT id, nombre from personal where empresa = 1 limit 1;
id | nombre
------+--------
1915 | Juan
(1 fila)

El departamento al que pertenece el usuario:
SELECT * from depart_personal where usuarios = '1915';
id | departamento | usuarios
----+--------------+----------
1 | 1 | 1915
(1 fila)

Lo que trataba de hacer es listar todos los departamentos en los cuales no se
encuentra el usuario. Lo hecho de este modo:

select a.id, a.nombre from departamentos a left join depart_personal p on a.id
= p.departamento where a.id in (select id from departamentos except select
departamento from depart_personal where usuarios = '1915';

Gracias por las contestaciones.
--
Saludos.
Pablo
------------
Jabber: bruli(at)myjabber(to)net
Fingerprint: 944D 10DA 4C10 08D1 574D 4B48 3BC1 CEF7 F222 EB1D

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message fernando villarroel 2006-03-11 16:16:30 plpython
Previous Message Pablo Braulio 2006-03-11 14:30:50 Re: Sacar datos de una tabla mientras no existan en otra.