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@uevora.pt http://neptuno.sc.uevora.pt/~mjnf