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

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

In response to

Responses

Browse pgsql-es-ayuda by date

  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]