On Tue, Jun 2, 2009 at 11:22, Alvaro Herrera <[email protected]> wrote: > Diego Andrés Sanabria Martin (diegueus9) escribió: >> Saludos a todos! >> >> Les escribo porque tengo una duda que es la siguiente: >> Tengo una taba A con id y una tabla B que tiene una llave foranea a A, >> necesito obtener todos los item en A que no esten en B, intente con: >> select from A join B on A.id = B.campo_a_id where A.id is not null >> pero no funciona, que estoy haciendo mal? > > Te falta indicarle que es un outer join, por ej. con "left": > > select from A left join B on A.id = B.campo_a_id where A.id is not null > > De lo contrario hace un inner join.
Sip, me faltó escribirlo, pero describiré mejor la situación: La tabla A es item y la tabla B es ip_modem_solicitado y el select es el siguiente: select * from item left outer join ip_mantenimiento_modem on item.id = ip_mantenimiento_modem.item_id where ip_mantenimiento_modem.id is not null and bodega_id=6 and tipo_item_id=3 Y me muestra 35 filas, cuando debería ser solo 1 si hago un : select * from item where bodega_id=6 and tipo_item=3 son 36 registros. Necesito es ese unico registro que no esta en ip_mantenimiento_modem, intenté cambiando el orden de las tablas, pero no funciona. > > -- > Alvaro Herrera http://www.advogato.org/person/alvherre > We take risks not to escape from life, but to prevent life escaping from us. > -- Diego Andrés Sanabria Ingeniería de Sistemas Universidad Distrital about:me http://www.google.com/profiles/diegueus9 cel 3015290609 Sent from Bogota, DC, Colombia -- TIP 6: �Has buscado en los archivos de nuestra lista de correo? http://archives.postgresql.org/pgsql-es-ayuda
