Problema com JOIN

Firebird

28/04/2004

Pessoal eu tenho uma tabela filme e uma tabela diretor...
Fazendo a relação entre as duas tenho uma tabela filme_diretor, e na hora do join to fazendo o seguinte:

select f.filme,d.diretor
from tb_filme f, tb_diretor d,tb_diretor_filme df
inner join tb_diretor_filme on f.cd_filme=df.cd_filme
inner join tb_diretor_filme on d.cd_diretor=df.cd_diretor

Até ai firmeza, ele faz o que eu to pedindo...
O problema eh que ele tah exibindo na grid do ISQL um monte de registros duplicados....
Por exemplo um monte de registros com o mesmo diretor e o mesmo filme... tipo clonados.

Alguem pode me ajudar a resolver essa???

Agradeço desde já...
Obrigado


Doom

Doom

Curtidas 0

Respostas

Nelson_prog

Nelson_prog

28/04/2004

DooM

tente usar a clausula distinct depois do select ou use left outer join ao inves de inner join.

Boa Sorte.

Nelson


GOSTEI 0
Doom

Doom

28/04/2004

Muito obrigado Nelson, realmente eu só precisei colocar um distinct depois do select. Problema resolvido.

Mas eu agora fiquei curioso... por que acontece isso??? Por que o IB repete os registro, você ou algum fera do fórum sabe resolver como funciona a lógica da coisa?

Só por curiosidade... :wink:


GOSTEI 0
Nelson_prog

Nelson_prog

28/04/2004

Bom Domm,

a clausula distinct no interbase prevê a exclusão de linhas semelhantes no resultado do select, ou seja, retira a duplicidade.

Espero que tenha de ajudado!

Boa Sorte.

Nelson :wink:


GOSTEI 0
Doom

Doom

28/04/2004

Não nelson, o distinct eu entendi...
O que eu queria saber porque que no inner join que eu criei sem o distinct o IB faz o que eu peço mas causa essa duplicidade.
Por que ele pensa assim? Compreende...
Só a titulo de curiosidade mesmo.....
:lol:


GOSTEI 0
POSTAR