Ir para conteúdo
Fórum Script Brasil
  • 0

Busca em 2 tabelas


Kllaos

Pergunta

Bom pessoal... to precisando da ajuda de vocês...

Meu bd é estruturado da seguinte forma, uma tabela com os dados cadastrais da empresa, e outra com os contatos dentro desta empresa, sendo que a empresa pode ter nenhum ou vários contatos.

Resumindo, fica assim:

EMPRESA

id

nome

cnpj

endereco

EMPRESA_CONTATO

id

empresa_id

nome

ramal

Minha dificuldade é criar uma sql que faz uma busca nestas 2 tabelas. Por exemplo, o usuario digita algo e o sql procura em nome da empresa, nome do contato, cnpj, etc.

Tentei aproveitar o post http://scriptbrasil.com.br/forum/index.php?showtopic=134281 , mas não consegui...

Fiz assim:

SELECT e.id, e.nome, c.nome as contato FROM empresa e INNER JOIN empresa_contato c ON e.id = c.empresa_id ORDER BY e.nome

Mas só tá retornando as empresas que tem contato...

Alguma ajuda?!? :unsure:

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Oi, 'Kllaos'

Substitua INNER por LEFT e acrescente a cláusula STRAIGHT_JOIN, para que a consulta seja ainda mais otimizada.

Em suma, sua consulta ficará assim:

SELECT STRAIGHT_JOIN e.id, e.nome, c.nome as contato 
FROM empresa e 
LEFT JOIN empresa_contato c ON e.id = c.empresa_id 
ORDER BY e.nome

Link para o comentário
Compartilhar em outros sites

  • 0

EMPRESA

id

nome

cnpj

endereco

EMPRESA_CONTATO

id

empresa_id

nome

ramal

SELECT
   NOME.EMPRESA,
   CNPJ.EMPRESA,
   NOME.EMPRESA_CONTATO,
   RAMAL.EMPRESA_CONTATO
FROM
   EMPRESA
INNER JOIN EMPRESA_CONTATO ON EMPRESA_CONTATO.ID = EMPRESA.ID
WHERE
   NOME.EMPRESA LIKE '% O QUE O USUARIO DIGITOU %'
AND
   NOME.EMPRESA_CONTATO LIKE '% O QUE O USUARIO DIGITOU %'

Editado por DeeKilleer
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...