Duda de SQL

From: Luis Rodrigo Gallardo Cruz <rodrigo(at)nul-unu(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Duda de SQL
Date: 2007-01-10 00:39:18
Message-ID: 20070110003918.GJ2609@caribdis.nul-unu.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Dada la siguiente estructura (simplificada):

create table Valuacion (int id);
create table Vale(int id_valuacion, int estado, otras_cosas);

Si quiero 'las valuaciones que tienen por lo menos un vale en estado
n', ¿cual de las siguientes parece más recomendable?

select distinct v.id from Valuacion v where v.id in
(select va.id_vale from Vale va where va.estado = n);

o

select distinct v.id from Valuacion v where n in
(select va.estado from Vale va where va.id_valuacion = v.id);

¿En que me fijo para elegir una sobre otra? ¿Hay algo más simple?

Siento que estoy matando moscas a cañonazos al usar un subselect para
pregunta tan sencilla.

(Puntos extra: En realidad estoy haciendo las consultas via
Hibernate. Si alguien lo conoce, ¿se le ocurre como traducir la
primera a HQL, dado que Vale se ve como una propiedad Set de
Valuacion?)

--
Rodrigo Gallardo
GPG-Fingerprint: 7C81 E60C 442E 8FBC D975 2F49 0199 8318 ADC9 BC28
Zenophobia: the irrational fear of convergent sequences.

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2007-01-10 03:17:38 Re: ctid
Previous Message Jenaro Centeno Gómez 2007-01-09 23:57:59 Re: DESCONECTAR USUARIOS DESDE EL FRONT