[Pgsql-ayuda] Buscando nulos en campos que referencían a otras tablas

From: Gunnar Wolf <gwolf(at)campus(dot)iztacala(dot)unam(dot)mx>
To: pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx
Subject: [Pgsql-ayuda] Buscando nulos en campos que referencían a otras tablas
Date: 2002-12-02 18:27:31
Message-ID: Pine.BSO.4.44.0212021214410.27538-100000@campus.iztacala.unam.mx
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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.

--
Gunnar Wolf - gwolf(at)campus(dot)iztacala(dot)unam(dot)mx - (+52-55)5623-1118
PGP key 1024D/8BB527AF 2001-10-23
Fingerprint: 0C79 D2D1 2C4E 9CE4 5973 F800 D80E F35A 8BB5 27AF

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Gunnar Wolf 2002-12-02 18:35:23 Re: [Pgsql-ayuda] Buscando nulos en campos que referencían a otras tablas
Previous Message Fernando Romo 2002-12-02 06:36:38 Re: [Pgsql-ayuda] Buscando nulos en campos que referencían a otras tablas