[firebase-br] RES: SQL - select em tabela com 3 chaves estrangeiras, com mesma referência

Alysson Gonçalves de Azevedo agalysson em gmail.com
Sex Set 24 09:20:28 -03 2010


select * from T2
left outer join T1 on T2_fun=T1_cod
left outer join T1 on T2_med=T1_cod
left outer join T1 on T2_coord=T1_cod
where T2_cod=<PARÂMETRO>

o que eu vi de estranho que talvez cause o erro "Ambiguous field name
between table T1 and table T1" são 3 joins da mesma tabela com o mesmo
nome...

nesse caso, tente
select * from T2
left outer join T1 TFun on T2_fun=T1_cod
left outer join T1 TMed on T2_med=T1_cod
left outer join T1 TCoord on T2_coord=T1_cod
where T2_cod=<PARÂMETRO>

dae, vc passa a TFun, TMed e TCood nos campos do seu select

Alysson Gonçalves de Azevedo
(11) 8491-7730

(\(''^_^ )/)

"Pobre vive dizendo que não tem nada, mas quando vem a enchente, ele sai
gritando: -Perdi tudo!!!"




Em 24 de setembro de 2010 09:13, Felix <felix.sol em terra.com.br> escreveu:

> Nem sei se vou digitar besteira, mas tenta:
>
> select * from T2
> left outer join T1 on ((T2_fun=T1_cod) or (T2_med=T1_cod) or
> (T2_coord=T1_cod))
> where T2_cod=<PARÂMETRO>
>
> Fco. Felix
> Desenvolvimento de Sistemas
> www.soltecnologia.com.br
>
> -----Mensagem original-----
> De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br]
> Em
> nome de Roberto Teruo Kobayashi
> Enviada em: sexta-feira, 24 de setembro de 2010 08:58
> Para: lista em firebase.com.br
> Assunto: [firebase-br] SQL - select em tabela com 3 chaves estrangeiras,
> com
> mesma referência
>
> Senhores, preciso de uma ajuda. Estou usando o Firebird 2.1 para produzir
> um
> programa para a empresa onde trabalho e estou quebrando a cabeça com um
> Select. Descrevo a situação a seguir:
>
> Tenho duas tabelas:
>
> T1 -> Tabela contendo a listagem de funcionários
> T2 -> Tabela com informações sobre exames admissionais
>
> T1
> T1_cod - código do registro
> T1_nome - nome do funcionário
>
> T2
> T2_cod - código do registro
> *T2_fun - funcionário examinado
> *T2_med - médico examinador
> *T2_coord - médico coordenador
>
> Os campos com * são Chaves Estrangeiras, que tem como referência o campo
> T1_cod, da tabela de funcionários.
>
> O problema acontece quando tento usar o seguinte Select:
>
> select * from T2
> left outer join T1 on T2_fun=T1_cod
> left outer join T1 on T2_med=T1_cod
> left outer join T1 on T2_coord=T1_cod
> where T2_cod=<PARÂMETRO>
>
> Quando executo o select, o Firbird retorna a seguinte mensagem:
>
> SQL Message : -204
> Undefined name
>
> Engine Code : 335544569
> Engine Message :
> Dynamic SQL Error
> SQL error code = -204
> Ambiguous field name between table T1 and table T1
> T1_cod
>
> O que estou fazendo de errado?
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista