From: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> |
---|---|
To: | Jaime Casanova <jaime(at)2ndquadrant(dot)com> |
Cc: | Rusel Fichi <rdfs(dot)ing(at)gmail(dot)com>, pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Dudas sobre consulta SQL |
Date: | 2013-05-17 17:35:29 |
Message-ID: | 20130517173529.GQ15045@eldon.alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Jaime Casanova escribió:
> 2013/5/17 Rusel Fichi <rdfs(dot)ing(at)gmail(dot)com>:
> >
> > Es decir algo asi:
> >
> > Select*from usuarios where login in ('jperez','pmartinez');
> >
> > Entonces jperez es un usuario registrado por lo cual no me importa, pero
> > pmartinez no tiene usuario y obviamente no se va a encontrar en la tabla lo
> > que quiero es justamente eso que de alguna forma la consulta me arroje los
> > valores que no fueron encontrados en la tabla... y asi sabria cuales son los
> > usuarios exactos que tengo que crear ...
>
> pg version: 8.4+
>
> WITH lista_usuarios (login) AS (VALUES ('jperez'), ('pmartinez'))
> SELECT * FROM lista_usuarios
> WHERE login NOT IN (select login from usuarios)
O también un outer join donde el campo de la tabla es null:
SELECT *
FROM usuarios RIGHT JOIN
(VALUES ('jperez'), ('pmartinez')) f (login)
USING (login)
WHERE usuarios.login IS NULL;
También se puede hacer con el WITH:
WITH lista_usuarios (login) AS (VALUES ('jperez'), ('pmartinez'))
SELECT *
FROM lista_usuarios LEFT JOIN
usuarios
USING (login)
WHERE usuarios.login IS NULL;
--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda
From | Date | Subject | |
---|---|---|---|
Next Message | Rusel Fichi | 2013-05-17 18:42:32 | Re: Dudas sobre consulta SQL |
Previous Message | Jaime Casanova | 2013-05-17 17:14:05 | Re: Dudas sobre consulta SQL |