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
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. |