2 SELECT MESMA TABELA

ALTAIR148 14/03/2012 08:04:51
#397111
Bom dia,

Galera tenho o select abaixo e é o seguinte, ele faz um join entre as tabelas, e ele consulta duas vezes a mesma tabela, o detalhe é que os campos da tabela tb_produtor vem com o mesmo nome.

Select
select * from tb_gta_bovinos Join  tb_produtor on Produtor_ID = tb_gta_bovinos.GTAB_ID_Procedencia join tb_estabelecimentos on tb_estabelecimentos.Estabelecimento_ID = tb_gta_bovinos.GTAB_ID_Procedencia and tb_estabelecimentos.Estabelecimento_CNPJ = tb_produtor.Produtor_CNPJ



Ex

tb_produtor
Produtor_ID = 1
Produtor_Nome = Altair
Procudor_CNPJ = 1234
[ô]------------------------------------------------------
Produtor_ID = 2
Produtor_Nome = Silva
Procudor_CNPJ = 5678


o resultado fica


Produtor_Nome = Altair
Procudor_CNPJ = 1234

Produtor_Nome = Altair
Procudor_CNPJ = 1234

Eu precisava que fosse assim:


Produtor_Nome_Procedencia = Altair
Procudor_CNPJ_Procedencia = 1234
Produtor_Nome_Destino = Silva
Procudor_CNPJ_Destino = 5678






TRTNCG 14/03/2012 08:22:43
#397114
Bem Altair é só colocar ALIAS para os nomes dos campos. Outra dica procure retornar no select somente os campos que seja necessário mesmo, assim ganha em desempenho. em uma base de dados que não contenha muitos registros quase não se percebe a diferença do (*) ASTERISCO, no entanto, em base de dados de grande porte perceberás de cara a diferença ao executar a consulta, outra dica use indíces nos campos o qual faz left join, right join ou etc.

Exemplo seria

Select TB1.Nome as NomeProdutor, TB2.Nome as NomeCliente....
FOXMAN 14/03/2012 08:33:29
#397116
Resposta escolhida
Veja se não da certo fazendo algo assim :

Select X.Produtor_Nome_Procedencia,Y.Procudor_CNPJ_Procedencia,X.Produtor_Nome_Destino,Y.Procudor_CNPJ_Destino from TABELA X JOIN TABELA Y ON (X.CAMPO = Y.CAMPO) FROM TABELA X;


ALTAIR148 14/03/2012 08:58:35
#397119
Ok galera.... Mais tarde eu testo e posto o resultado... Valeu ai...
Tópico encerrado , respostas não são mais permitidas