From: | Fernando Romo <pop(at)cofradia(dot)org> |
---|---|
To: | Gunnar Wolf <gwolf(at)campus(dot)iztacala(dot)unam(dot)mx> |
Cc: | pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx |
Subject: | Re: [Pgsql-ayuda] Buscando nulos en campos que referencían a otras tablas |
Date: | 2002-12-02 06:36:38 |
Message-ID: | 1038810998.7037.99.camel@vaio.xaos |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Si mal no recuerdo poner:
where Campo = NULL
es invalido, tienes que poner
Where Campo IS NULL
o su contraparte
Where Campo IS NOT NULL
Saludos.... EL Pop
On Tue, 2002-12-03 at 00:27, Gunnar Wolf wrote:
> Hola mundo,
>
> A ver... Tengo una duda por acá digna de ustedes: Creé una base en la cual
> tengo una tabla así:
>
>
> CREATE TABLE "sess_quest" (
> "sess_id" integer REFERENCES sess(id),
> "quest_id" integer REFERENCES quest(id),
> "opt_id" integer REFERENCES opt(id) DEFAULT NULL,
> PRIMARY KEY("sess_id", "quest_id")
> );
>
> Crear una sesión en el sistema significa crear un registro en la tabla
> sess, y un número determinado de registros en esta tabla sess_quest,
> ligando la sesión a una serie de preguntas. Cada pregunta tiene ligada
> varias opciones, de las cuales con esta tabla puedo elegir una.
>
> Todo bien. Acá, por ejemplo, veo las preguntas relativas a una sesión,
> tanto las que ya fueron respondidas como las que aún no:
>
> exam=# select * from sess_quest where sess_id=1;
> sess_id | quest_id | opt_id
> ---------+----------+--------
> 1 | 5 |
> 1 | 6 |
> 1 | 8 |
> 1 | 4 |
> 1 | 17 |
> 1 | 19 |
> 1 | 29 |
> 1 | 15 | 39
> 1 | 2 | 4
> 1 | 18 | 44
> 1 | 14 | 37
> (11 rows)
>
> Ahora, cuando quiero seleccionar las preguntas que no han sido
> respondidas:
>
> exam=# select * from sess_quest where opt_id = NULL;
> sess_id | quest_id | opt_id
> ---------+----------+--------
> (0 rows)
>
> He estado jugando con casi cualquier combinación, incluyendo cosas
> extrañas como esta:
>
> exam=# select * from sess_quest where opt_id > 0 or opt_id <= 0;
> sess_id | quest_id | opt_id
> ---------+----------+--------
> 1 | 15 | 39
> 1 | 2 | 4
> 1 | 18 | 44
> 1 | 14 | 37
> (4 rows)
>
> Y no le encuentro la lógica... Tal vez por estar amarrado el opt_id a otra
> tabla - pero no encuentro una manera limpia de representar esto. ¿Alguien
> tiene alguna idea? Estoy usando PostgreSQL sobre Debian/i386 (probé con la
> versión 7.2.3-3 y 7.2.1-2, sobre Woody y Sid respectivamente).
>
> Gracias, y saludos.
--
Saludos..... El Pop
pop(at)cofradia(dot)org
From | Date | Subject | |
---|---|---|---|
Next Message | Gunnar Wolf | 2002-12-02 18:27:31 | [Pgsql-ayuda] Buscando nulos en campos que referencían a otras tablas |
Previous Message | Antonio Castro | 2002-11-30 08:35:19 | Re: [Pgsql-ayuda] Re: [Pgsql-ayuda] ¿Cómo se come esto? [SOLUCIONADO] |