Ir para conteúdo

POWERED BY:

Arquivado

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

Angellis

SELECT com INNER JOIN devolvendo valor inesperado

Recommended Posts

Eu tenho duas tabelas clientes e contatos.

E preciso fazer uma busca por uma determinada chave em ambas as tabelas.

Estou usando o consulta a baixo:

 

SELECT tbl_cliente.id, tbl_cliente.nome_cliente, tbl_contato.nome_contatoFROM (tbl_contatoINNER JOIN tbl_cliente ON tbl_contato.id_empresa = tbl_cliente.id)WHERE tbl_cliente.nome_cliente LIKE '%empre%'LIMIT 0 , 30

O problema é que, se na tabela contato não tiver nenhum registro com o número de relacionamento da outra tabela, ele não acha.

Tipo eu tenho na primeira tabela 2 registros:

id = 1

nome_cliente = Empresa

id =2

nome_cliente = Empresinha

 

Na segunda tabela apenas um registro:

id_empresa = 1 (esse campo é o que contem o relacionamento com a outra tabela)

nome_contato = Funcionario

 

O que acontece é que recebo apenas como resultado da busca os valores de Empresa. O Empresinha é ignorado por não ter um registro na segunda tabela com relacionamento para ele.

 

ALguém tem noção do motivo? Ou caso seja isso mesmo, onde eu estou errando ao pensar que deveria retornar ambos?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!Substitua o INNER JOIN por LEFT OUTER JOIN.O INNER JOIN funciona assim mesmo: só traz os casos que constam em ambas as tabelas.Já o LEFT OUTER JOIN traz todos os casos na tabela da esquerda (no caso, tbl_contato) e, se houver, sua correspondência na tabela da direita (tbl_cliente).Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Luigi,Obrigado pela ajuda!No início achei que não estava funcionando. Fui então procurar a respeito desse LEFT JOIN (que eu não conhecia até então) e vi que realmente era o que precisava. Mas continuava não funcionando!Ai procurei no meu php e achei umas linhas comentadas que não deveriam estar e BINGO!Agora está do jeito que eu preciso.Obrigado mais uma vez.Abraço,

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.