Ir para conteúdo

POWERED BY:

Arquivado

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

Alexandre Medeiros

Consulta com filtro em mais de uma tabela

Recommended Posts

Bom dia galera, estou com um pequeno problema com minha query, eis a descricão do problema:

 

Tenho 2 tabelas, imovel (com dados basicos do imovel) e dados (com dados adicionais de cada imovel), o cliente queria uma busca avançada, ou seja, buscar além das informações básicas, buscar também pelas informações adicionais.

 

tentei essa query abaixo:

 

SELECT im.id AS id FROM imoveis AS im 
JOIN dados AS da ON da.imovel = im.id 
WHERE (da.bloco = 11 AND da.texto = 2) 
GROUP BY im.id ORDER BY im.valor DESC

Essa de cima funcionou, mas é apenas para um campo, quando adiciono mais campos a query, abaixo, retorna 0 (zero):

SELECT im.id AS id FROM imoveis AS im 
JOIN dados AS da ON da.imovel = im.id 
WHERE (da.bloco = 11 AND da.texto = 2) AND (da.bloco = 10 AND da.texto = 2) 
GROUP BY im.id ORDER BY im.valor DESC

 

O que eu estou fazendo errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso é impossivel

 

WHERE (da.bloco = 11 AND da.texto = 2) AND (da.bloco = 10 AND da.texto = 2)

 

nao pode ser 10 e 11 ao mesmo tempo

 

se for para pegar as duas condicoes use OR

 

WHERE (da.bloco = 11 AND da.texto = 2) OR (da.bloco = 10 AND da.texto = 2)

 

---------------------

 

Mas logico que da para fazer a mesma coisa de forma mais bonita, senao mais correta

 

WHERE da.bloco IN (10,11) AND da.texto = 2)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, desculpa, mas faltou informações a pergunta, quando eu botei esse codigo:

 

SELECT im.id AS id FROM imoveis AS im JOIN dados AS da ON da.imovel = im.id WHERE (da.bloco = 11 AND da.texto = 2) AND (da.bloco = 10 AND da.texto = 2) GROUP BY im.id ORDER BY im.valor DESC

Esqueci de mencionar que o valor passado de da.texto = 2, esse 2 é um campo no formulário, no caso do código (da.bloco = 10 AND da.texto = 2 é um campo) e (da.bloco = 10 AND da.texto = 2 é outro campo), o 2 é dinamico.

 

http://www.imobiliariaprime.com.br/busca_avancada.php

 

10 e 11 é referente, respectivamente, à Quartos e Suites desse formulario acima.

 

P.S.: O formulário ainda não está 100%.

 

Alguma ideia de solução?

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao mesmo assim se usar AND sempre virá vazio pois o mesmo campo nao pode, ao mesmo tempo, ter dois valores diferentes

 

use OR

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.