From: | Francisco Javier Morosini Eguren <francisco(dot)morosini(at)gmail(dot)com> |
---|---|
To: | |
Cc: | pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Dudas sobre consulta SQL |
Date: | 2013-05-17 18:45:29 |
Message-ID: | CABofrE2n0ZvCkGOx7tmKHpCCY4qed-VX6a1GB_ON3-=oZte=wQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Alvaro, el usar un right join vs un with tiene alguna diferencia en
performance ? o es transparente?
2013/5/17 Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
> 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
>
--
<inflex> really, I see PHP as like a strange amalgamation of C, Perl, Shell
<crab> inflex: you know that "amalgam" means "mixture with mercury",
more or less, right?
<crab> i.e., "deadly poison"
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2013-05-17 19:39:46 | Re: Dudas sobre consulta SQL |
Previous Message | Rusel Fichi | 2013-05-17 18:42:32 | Re: Dudas sobre consulta SQL |