Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Web Lucas Oliveira

SELECT duplicando busca

Recommended Posts

Alguém sabe o que pode ser?

 

Estou fazendo um select em 4 tabelas e está duplicando o resultado, alguém sabe porque?

 

SELECT i.id_instituicao, i.nome_inst, s.id_instituicao as id_inst, s.id_serie, s.nome_serie, l.cod_livro, l.titulo, lis.id_instituicao, lis.id_serie, lis.cod_livro 

FROM tbinstituicao i, tbserie s, tblivro l, tblivroinstserie lis 

WHERE lis.id_instituicao = i.id_instituicao AND lis.id_serie = s.id_serie AND lis.cod_livro = l.cod_livro 

ORDER BY i.nome_inst ASC, s.nome_serie ASC, l.titulo ASC

Compartilhar este post


Link para o post
Compartilhar em outros sites

só oberservando os dados pra dizer em qual ponto esta acontecendo matriz (uma linha de uma tabela se relaciona com 2 ou mais linhas de outras tabelas).

 

Para garantir que isso nao ocorra você deve utilizar as contraints UNIQUE ou PRIMARY KEY

Compartilhar este post


Link para o post
Compartilhar em outros sites

só oberservando os dados pra dizer em qual ponto esta acontecendo matriz (uma linha de uma tabela se relaciona com 2 ou mais linhas de outras tabelas).

 

Para garantir que isso nao ocorra você deve utilizar as contraints UNIQUE ou PRIMARY KEY

 

Eu to usando PRIMARY KEY.

 

E nas tabelas só tem 1 registro, mas na exibição está aparecendo dois.

 

Estranho, eu coloquei no servidor, está aparecendo normal, mas localmente ele duplica...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode ser realmente um produto cartesiano indevido, reveja os relacionamento entres as tabelas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

SELECT i.id_instituicao, i.nome_inst, s.id_instituicao as id_inst, s.id_serie, s.nome_serie, l.cod_livro, l.titulo, lis.id_instituicao, lis.id_serie, lis.cod_livro

 

FROM tbinstituicao i, tbserie s, tblivro l, tblivroinstserie lis

 

WHERE lis.id_instituicao = i.id_instituicao AND lis.id_serie = s.id_serie AND lis.cod_livro = l.cod_livro

 

ORDER BY i.nome_inst ASC, s.nome_serie ASC, l.titulo ASC

 

Cara...

 

A principio o problema está em alguma foreign key não foi referenciada nessa consulta, por isso a duplicação.

 

Se possível tem como enviar as estruturas da tabela pra dar uma analisada?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.