Fórum Erro no select Join Firebird !! #42148
05/02/2004
0
Caros Colegas
Como devo fazer um select join no Firebird, tenho quatro tabelas diferentes e preciso buscar dados em todas elas..
ex:
select TP01001.C_COD_LOCAL, TP01001.C_DESC_LOCAL, TP01001.C_COD_PAIS, TP01001.C_COD_ESTADO, TP01001.C_COD_CIDADE, TP01001.C_COD_BAIRRO, TP02001.C_DESC_PAIS, TP03001.C_DESC_ESTADO, TP04001.C_DESC_CIDADE, TP05001.C_DESC_BAIRRO from TP01001, TP02001, TP03001, TP04001, TP05001 where TP01001.C_COD_PAIS = TP02001.C_COD_PAIS and TP01001.C_COD_ESTADO = TP03001.C_COD_ESTADO and TP01001.C_COD_CIDADE = TP04001.C_COD_CIDADE and TP01001.C_COD_BAIRRO = TP05001.C_COD_BAIRRO
o select não retorna nenhum valor, mas existe o registro selecionado acima. O que me parece é que não consigo fazer um Join em mais de duas tabelas, pq fiz o teste e foi isso que me pareceu. Se alguém puder me dar uma luz...
Agradeço antecipadamente
Cabelo
Como devo fazer um select join no Firebird, tenho quatro tabelas diferentes e preciso buscar dados em todas elas..
ex:
select TP01001.C_COD_LOCAL, TP01001.C_DESC_LOCAL, TP01001.C_COD_PAIS, TP01001.C_COD_ESTADO, TP01001.C_COD_CIDADE, TP01001.C_COD_BAIRRO, TP02001.C_DESC_PAIS, TP03001.C_DESC_ESTADO, TP04001.C_DESC_CIDADE, TP05001.C_DESC_BAIRRO from TP01001, TP02001, TP03001, TP04001, TP05001 where TP01001.C_COD_PAIS = TP02001.C_COD_PAIS and TP01001.C_COD_ESTADO = TP03001.C_COD_ESTADO and TP01001.C_COD_CIDADE = TP04001.C_COD_CIDADE and TP01001.C_COD_BAIRRO = TP05001.C_COD_BAIRRO
o select não retorna nenhum valor, mas existe o registro selecionado acima. O que me parece é que não consigo fazer um Join em mais de duas tabelas, pq fiz o teste e foi isso que me pareceu. Se alguém puder me dar uma luz...
Agradeço antecipadamente
Cabelo
Cabelo
Curtir tópico
+ 0
Responder
Posts
05/02/2004
Elbio
Tente o seguinte:
select TP01001.C_COD_LOCAL, TP01001.C_DESC_LOCAL, TP01001.C_COD_PAIS, TP01001.C_COD_ESTADO, TP01001.C_COD_CIDADE, TP01001.C_COD_BAIRRO, TP02001.C_DESC_PAIS, TP03001.C_DESC_ESTADO, TP04001.C_DESC_CIDADE, TP05001.C_DESC_BAIRRO
from
TP01001 inner join TP02001 on (TP01001.C_COD_PAIS = TP02001.C_COD_PAIS)
inner join TP03001 on (TP01001.C_COD_ESTADO = TP03001.C_COD_ESTADO)
inner join TP04001 on (TP01001.C_COD_CIDADE = TP04001.C_COD_CIDADE)
inner join TP05001 on (TP01001.C_COD_BAIRRO =
TP05001.C_COD_BAIRRO)
Espero ter ajudado.
Elbio.
select TP01001.C_COD_LOCAL, TP01001.C_DESC_LOCAL, TP01001.C_COD_PAIS, TP01001.C_COD_ESTADO, TP01001.C_COD_CIDADE, TP01001.C_COD_BAIRRO, TP02001.C_DESC_PAIS, TP03001.C_DESC_ESTADO, TP04001.C_DESC_CIDADE, TP05001.C_DESC_BAIRRO
from
TP01001 inner join TP02001 on (TP01001.C_COD_PAIS = TP02001.C_COD_PAIS)
inner join TP03001 on (TP01001.C_COD_ESTADO = TP03001.C_COD_ESTADO)
inner join TP04001 on (TP01001.C_COD_CIDADE = TP04001.C_COD_CIDADE)
inner join TP05001 on (TP01001.C_COD_BAIRRO =
TP05001.C_COD_BAIRRO)
Espero ter ajudado.
Elbio.
Responder
Gostei + 0
06/02/2004
Cabelo
Caro Elbio
Valeu pela dica, mas o meu select estava correto, e o seu tb, o problema é que de alguma maneira eu perdi os dados das tabelas, por isso não trazia nenhum resultado.
No editor SQL do Delphi, mostravam os dados na tela, mas quando abri o Manager do firebird cadê os dados? Tinham sumido, ainda não sei pq isto ocorreu mas estou verificando, mesmo assim valeu pela dica..
Té +
Cabelo
Valeu pela dica, mas o meu select estava correto, e o seu tb, o problema é que de alguma maneira eu perdi os dados das tabelas, por isso não trazia nenhum resultado.
No editor SQL do Delphi, mostravam os dados na tela, mas quando abri o Manager do firebird cadê os dados? Tinham sumido, ainda não sei pq isto ocorreu mas estou verificando, mesmo assim valeu pela dica..
Té +
Cabelo
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)