Ir para conteúdo

POWERED BY:

Arquivado

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

Caio César

Consulta SQL com duas tabelas

Recommended Posts

Boa noite.

 

Bem, tenho o seguinte problema.

 

Eu tenho uma tabela de anúncios que se relaciona com uma tabela onde ficam salvas as imagens que podem ou não ser cadastradas nesses anúncios. Além dessa, a tabela de anúncios também se relaciona com uma tabela de sub categorias.

 

Eu preciso fazer uma busca onde essas tabelas retornem como resultado os anúncios cadastrados que possuem imagens e também os que não possuem.

 

Eu rodei bastante até chegar nessa consulta, mas infelizmente ela só me retorna os resultados que possuem imagem:

SELECT a.*, img.image_name, img.contract_id FROM announcement AS a INNER JOIN announcement_img AS img ON a.contract = img.contract_id WHERE a.title LIKE '%t%' OR a.description LIKE '%t%'

 

Eu cheguei em outra que me retornava todos, mas conforme eu cadastrava mais imagens, a consulta ia se repetindo e adicionando uma imagem para cada anúncio mesmo que ele não tivesse imagem cadastrada. Algo mais ou menos assim:

 

SELECT a.*, img.image_name, img.contract_id
FROM announcement AS a
INNER JOIN announcement_img AS img
WHERE a.title LIKE '%t%' OR a.description LIKE '%t%'

 

Alguma ideia?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que nesta consulta de baixo vc não colocou o ON a.contract = img.contract_id, por isso que aconteceu isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Adson aquino já apontou o possível problema, mas sem a estrutura ER, é um tanto complicado encontrar outros possíveis problemas.

Entender o funcionamento dos selects, junto com a forma que os dados são cruzados (através de joins), é fundamental para o entendimento do resultado retornado.

Um tempo atrás, eu passei pequenas explicações sobre o funcionamento dos joins, talvez lhe seja útil.

http://forum.imasters.com.br/topic/469816-como-utilizar-o-comando-union/?p=1864034
Utilizando Joins em SQL

 

Em ambos links, encontrará informações importantes sobre o funcionamento dos joins, caso possua alguma dúvida, poste no tópico e trataremos do assunto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Adson.

Na segunda consulta, eu experimentei retirar o on para ver se os resultados sem imagem apareciam.

Funcionou mais ou menos.

 

Mas enfim, eu já consegui resolver, obrigado mesmo assim.

Por curiosidade, o problema é o JOIN.

Ao invés de eu usar o INNER JOIN, eu coloquei um LEFT JOIN, que retorna todos os resultados da tabela a esquerda, mesmo que os resultados do ON não sejam iguais.

 

Mesmo assim, obrigado.

 

Gabriel Heming

 

Obrigado também. Vou dar uma boa lida nos artigos.

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.