Ir para conteúdo

POWERED BY:

Arquivado

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

Keven Jesus_164006

duplicando registros

Recommended Posts

olá meu sql esta duplicando os registros , nunca vi isto o codigo é este

 

     $sintax = "SELECT imovel.*,distribuicao_imovel.*,tipo_imovel.*,bairro.*,img_imovel.*,estados.*,cidades.*
                FROM imovel
                INNER JOIN distribuicao_imovel ON distribuicao_imovel.id_imovel = imovel.id
                INNER JOIN tipo_imovel ON tipo_imovel.id = imovel.id
                INNER JOIN bairro ON bairro.id = imovel.cod_bairro
                INNER JOIN img_imovel ON img_imovel.id_imovel = imovel.id
                INNER JOIN estados ON estados.cod_estados = imovel.cod_estado
                INNER JOIN cidades ON cidades.cod_cidades = imovel.cod_cidade
                WHERE cod_condicao = '1' AND distribuicao_imovel.verifica = '1' AND imovel.autorizo = '1' ORDER BY imovel.id DESC";

 

 

o resultado é :

SELECT imovel.*,distribuicao_imovel.*,tipo_imovel.*,bairro.*,img_imovel.*,estados.*,cidades.* FROM imovel INNER JOIN distribuicao_imovel ON distribuicao_imovel.id_imovel = imovel.id INNER JOIN tipo_imovel ON tipo_imovel.id = imovel.id INNER JOIN bairro ON bairro.id = imovel.cod_bairro INNER JOIN img_imovel ON img_imovel.id_imovel = imovel.id INNER JOIN estados ON estados.cod_estados = imovel.cod_estado INNER JOIN cidades ON cidades.cod_cidades = imovel.cod_cidade WHERE cod_condicao = '1' AND distribuicao_imovel.verifica = '1' AND imovel.autorizo = '1' ORDER BY imovel.id DESC

 

ai ele me duplica os registros sendo que existe somente 1 apenas ...

qdxu.png

 

alguem tem noção de como isto acontece ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Keven,

 

Observando sua query e, imaginando sua estrutura de tabelas, creio que exista um erro na linha do inner join das tabelas tipo_imovel com imovel, ao invés de:

 

INNER JOIN tipo_imovel ON tipo_imovel.id = imovel.id

 

Não seria:

 

INNER JOIN tipo_imovel ON tipo_imovel.id = imovel.id_tipo_imovel

 

Caso não seja, faça o seguinte, comente todas as tabelas abaixo do inner join de imovel com distribuicao (e retire-os do select, claro), execute a consulta, se não apresentar duplicados, o problema não esta ai, vá retirando os comentários e executando, com certeza chegará ao erro.

 

Espero ter ajudado, abraços.

 

_ _

Fabiano Abreu

Papo SQL

Compartilhar este post


Link para o post
Compartilhar em outros sites

nem é cara e tipo eu tirei a distribuicao_imovel e ele nao duplico mais ... !!! gostaria de saber o pq ta fazendo isso

o banco nao foi eu que modelei

 

da olhada ele cadastra o produto em todos .. porem o verifica é só quem esta com checked rs kk go horse

 

pr0e.png



e tava errado ali era WHERE imovel.cod_condicao e tava somente cod_condicao mas nao mudo nada tbm

Compartilhar este post


Link para o post
Compartilhar em outros sites

SELECT imovel.*,distribuicao_imovel.*,tipo_imovel.*,bairro.*,img_imovel.*,estados.*,cidades.* FROM imovel INNER JOIN distribuicao_imovel ON distribuicao_imovel.id_imovel = imovel.id INNER JOIN tipo_imovel ON tipo_imovel.id = imovel.id INNER JOIN bairro ON bairro.id = imovel.cod_bairro INNER JOIN img_imovel ON img_imovel.id_imovel = imovel.id INNER JOIN estados ON estados.cod_estados = imovel.cod_estado INNER JOIN cidades ON cidades.cod_cidades = imovel.cod_cidade WHERE cod_condicao = '1' AND distribuicao_imovel.verifica = '1' AND imovel.autorizo = '1' GROUP BY imovel.id ORDER BY imovel.id DESC

 

isso ajuda?

Compartilhar este post


Link para o post
Compartilhar em outros sites

 


SELECT imovel.*,distribuicao_imovel.*,tipo_imovel.*,bairro.*,img_imovel.*,estados.*,cidades.* FROM imovel INNER JOIN distribuicao_imovel ON distribuicao_imovel.id_imovel = imovel.id INNER JOIN tipo_imovel ON tipo_imovel.id = imovel.id INNER JOIN bairro ON bairro.id = imovel.cod_bairro INNER JOIN img_imovel ON img_imovel.id_imovel = imovel.id INNER JOIN estados ON estados.cod_estados = imovel.cod_estado INNER JOIN cidades ON cidades.cod_cidades = imovel.cod_cidade WHERE cod_condicao = '1' AND distribuicao_imovel.verifica = '1' AND imovel.autorizo = '1' GROUP BY imovel.id ORDER BY imovel.id DESC

 

isso ajuda?

 

 

simplesmente foda, parabens valeu :)

ficou assim então tinha outro error que o Andre Luiz me ajudou também

 

o cod tipo inner estava errado

 

SELECT imovel.*,distribuicao_imovel.*,tipo_imovel.*,bairro.*,img_imovel.*,estados.*,cidades.* FROM imovel 
INNER JOIN distribuicao_imovel ON distribuicao_imovel.id_imovel = imovel.id 
INNER JOIN tipo_imovel ON tipo_imovel.id = imovel.cod_tipo 
INNER JOIN bairro ON bairro.id = imovel.cod_bairro 
INNER JOIN img_imovel ON img_imovel.id_imovel = imovel.id 
INNER JOIN estados ON estados.cod_estados = imovel.cod_estado 
INNER JOIN cidades ON cidades.cod_cidades = imovel.cod_cidade 
WHERE imovel.cod_condicao = '1' AND distribuicao_imovel.verifica = '1' AND imovel.autorizo = '1' GROUP BY imovel.id ORDER BY imovel.id DESC

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Keven,

 

Legal que conseguiu "resolver", mas atenção, o group by está lhe dando uma falsa informação, pois, o problema de duplicidade ainda pode existir, recomendo verificar o que esta gerando esta duplicidade.

 

Se o select esta certo, veja se não existem dados duplicados nas tabelas.

 

_ _

Fabiano Abreu

Papo SQL

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.