Fórum inner join #345064
24/08/2007
0
Estou com um problema e preciso de ajuda, quanto antes.
Tenho três tabelas:
Cep
id_cep, logradouro,id_cidade,id_bairro,uf
Cidade
id_cidade,cidade,uf
Bairro
id_bairro,bairro,id_cidade
Quando escrevo uma query diretamente no SQL com inner join o resultado é perfeito, mas quando insiro no delphi e vou chamar a pesquisa, se eu não colocar todos as colunas da tabela cep (que é a principal na pesquisa) o delphi retorna erro.
Depois de colocar todas as colunas da tabela Cep, quando executo a pesquisa, no grid as colunas bairro e cidade não são apresentadas.
Já inseri as colunas bairro e cidade na tabela Cep e mantive com valor NULL, mas também não retorna a cidade e o bairro.
Uso Delphi 7 e SQL 2005. No SQL 2000 acontece a mesma coisa.
select a.id_cep, a.logradouro, a.id_cidade, a.id_bairro, a.uf, b.cidade, c.bairro from cep a
inner join cidade b on a.id_cidade = b.id_cidade
inner join bairro c on a.id_bairro = c.id_bairro
Por favor! Obrigado.
Daykas
Curtir tópico
+ 0Posts
24/08/2007
Marcosrocha
Gostei + 0
24/08/2007
Sillier
Qual o erro retornado pelo Delphi? Seja específico...
Que compoentes está utilizando para fazer o acesso a base de dados?
Usar apenas [color=blue:0af7e09ccf]JOIN[/color:0af7e09ccf] não dá nenhum erro.
Abraço.
Gostei + 0
24/08/2007
Marcosrocha
Gostei + 0
25/08/2007
Emerson Nascimento
não é possível criar Triggers ou Stored Procedures porque são scripts e os componentes nativos executam apenas uma linha de comando. Um select, por mais complexo que seja, é apenas uma linha, enquanto que uma Trigger ou uma Stored Procedure pode conter várias linhas de comando.
[b:cc27fb05a4]daykas[/b:cc27fb05a4], por acaso você tem campos persistentes no seu dataset? e na grade as colunas estão pré-definidas ou são exibidas somente quando da abertura do dataset?
se possível publique o código do dfm (formulário) pra que possamos avaliar melhor.
Gostei + 0
25/08/2007
Daykas
Não estou querendo criar nada, apenas dando um select com inner join.
Fiz um teste num banco e o resultado da outra tabela inserida no join é retornado só se eu colocar uma coluna na tabela principal com o mesmo data type e mantê-la com o valor nulo, ou seja, sem gravar nada nesta coluna.
Eu não estou achando que isso está correto, por isso recorri ao forum.
Obrigado;
Carlos
Gostei + 0
25/08/2007
Sillier
Não existe nenhum problema em se usar JOIN ou INNER JOIN, ambos tem o mesmo efeito sobre a consulta. Isso é apenas uma questão de sintaxe..
A mesma coisa referente a colocar ALIAS em tabelas e campos, pode-se usar o operador AS ou simplesmente omití-lo. Funciona! :lol:
O que tem que ter em mente é que quando se utliza apenas JOIN o sql retornará um INNER JOIN, ou seja, fará a consulta como se fosse um INNER que junta os resultados de duas tabelas. Caso precise fazer um LEFT JOIN ou RIGHT JOIN, é preciso declarar as duas palavras.
---
daykas,
Qual componetes de acesso a dados está utilizando para receber a consulta SQL?
Abraços...
Gostei + 0
25/08/2007
Marcosrocha
Gostei + 0
28/08/2007
Daykas
Carlos
Gostei + 0
28/08/2007
Marcosrocha
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)