Re: [SQL] Wierd stuff

From: Mario Jorge Nunes Filipe <mjnf(at)neptuno(dot)sc(dot)uevora(dot)pt>
To: "pgsql-sql(at)postgreSQL(dot)org" <pgsql-sql(at)postgreSQL(dot)org>
Subject: Re: [SQL] Wierd stuff
Date: 1999-12-03 16:46:37
Message-ID: 3847F3ED.98D71567@neptuno.uevora.pt
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Mario Jorge Nunes Filipe wrote:
>
> Hi
>
> I'm developing a system with a large number of tables.
>
> One of the tables has (among others) the following fields:
> Table = aluno
> +----------------------------------+---------------------------------
> | Field | Type
> +----------------------------------+---------------------------------
> | numero_aluno | int4
> | freguesia_naturalidade | int2
> | concelho_naturalidade | int2
> | nacionalidade | int2
>
> another is like this:
>
> -- Table = concelho
> +----------------------------------+---------------------------------
> | Field | Type
> +----------------------------------+---------------------------------
> | codigo | int4
> | nome | text
>
> The field "concelho_naturalidade" on the first table has values taken
> from the "codigo" field from the second.
>
> Now comes the problem:
>
> When i do :
> sac=> select a.numero_aluno, a.concelho_naturalidade from aluno a where
> a.numero_aluno=13792;
>
> i get:
>
> numero_aluno|concelho_naturalidade
> ------------+---------------------
> 13792| 1006
> (1 row)
>
> and whith:
> sac=> select * from concelho where codigo=1006;
>
> i get:
>
> codigo|nome
> ------+----------------
> 1006|CALDAS DA RAINHA
> (1 row)
>
> but with:
> sac=> select c.nome from aluno a, concelho c where
> a.concelho_naturalidade=c.codigo and a.numero_aluno=13792;
>
> i get:
>
> nome
> ----
> (0 rows)
>
> If my SQL is worth anything I thought it would reply "Caldas da Rainha".
> What is wrong here?

And now... even wierder (?):

sac=> select a.numero_aluno, a.concelho_naturalidade from aluno a
sac-> where
sac-> a.numero_aluno=15897;
numero_aluno|concelho_naturalidade
------------+---------------------
15897| 0
(1 row)

sac=> select * from concelho where codigo=0;
codigo|nome
------+-----------
0|A Preencher
(1 row)

sac=> select c.nome from aluno a, concelho c where
sac-> a.concelho_naturalidade=c.codigo and a.numero_aluno=15897;
nome
-----------
A Preencher
(1 row)

this is the expected output... the first one isn't. So does anyone have
a clue on what's going on?

This is not particularly critical has i can change the third query fro
the first two, only it becomes very inneficient.

Thanks
--
Mario Filipe
mjnf(at)uevora(dot)pt
http://neptuno.sc.uevora.pt/~mjnf

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Mario Jorge Nunes Filipe 1999-12-03 17:23:04 Re: [SQL] Wierd stuff
Previous Message Jan Wieck 1999-12-03 16:33:32 Re: [SQL] Wierd stuff