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

Consulta no MySQL


downloady

Pergunta

Ola Pessoal! Pessoal estou com um terrível dúvida de como fazer a seguinte consulta. Exemplificando:

Tenha a tabela pessoa com os seguintes registros:

ID => 1, NOME => João

ID => 2, NOME => Maria

ID => 3, NOME => Tiago

ID => 4, NOME => Pedro

A segunda tabela, empresa, tem o seguintes registros:

ID => 1, EMPRESA => Empresa A

ID => 2, EMPRESA => Empresa B

ID => 3, EMPRESA => Empresa C

ID => 4, EMPRESA => Empresa D

A terceira e última tabela, contatos, tem os seguintes registros:

IDPESSOA => 1, IDEMPRESA => 2

IDPESSOA => 2, IDEMPRESA => 2

IDPESSOA => 3, IDEMPRESA => 4

Problema: Estou tentando fazer uma sql que me tragar somente os nomes das pessoas que ainda não sejam contatos da empresa por exemplo 2. Neste caso deveria me trazer os nome de (Tiago e Pedro). Caso a empresa não tenha contato, a mesma sql, deve trazer todos os nomes. Isso é uma consulta básica, porém não estou consequindo solucioná-la.

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
No JOIN, ao invés de procurar por campos iguais, procure por diferentes.

ex:

LEFT JOIN tabela2 ON tabela2.empresaId != tabela1.clienteId

My SQL:

SELECT DISTINCT

pessoa.idPessoa,

pessoa.nome,

contato.dataCriacao,

contato.dataAtualizacao,

pessoa.situacao

FROM

pessoa

INNER JOIN contato ON (pessoa.idPessoa <> contato.idPessoa)

WHERE

contato.idIgreja = 1

não esta retornando os valores que preciso.

Link para o comentário
Compartilhar em outros sites

  • 0
Problema: Estou tentando fazer uma sql que me tragar somente os nomes das pessoas que ainda não sejam contatos da empresa por exemplo 2. Neste caso deveria me trazer os nome de (Tiago e Pedro). Caso a empresa não tenha contato, a mesma sql, deve trazer todos os nomes. Isso é uma consulta básica, porém não estou consequindo solucioná-la.

Resposta:

select nome 
from pessoa
where id not in (select distinct idpessoa from contatos where idempresa = 2);
INNER JOIN contato ON (pessoa.idPessoa <> contato.idPessoa)

A desigualdade acima não existe em termos de SQL.

Inner join retorna as linhas que existem em ambas tabelas. Se não há correspondente, em qualquer uma das tabelas ele não traz nada.

Na cláusula ON deve sempre haver uma igualdade.

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,4k
×
×
  • Criar Novo...