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

PHP + MySQL (JOIN com resultado múltiplo)


Samir

Pergunta

Estou com uma dificuldade em encontrar informações sobre INNER JOIN e JOIN, digo, informações básicas tem...

Tenho uma tabela que contém o índice tipo:

ÍNDICE e NOME

Em outra tabela eu tenho o índice para poder cruzar a referência (ÍNDICE) e outro campo (EMAIL)

até ai tudo bem, usando um INNER JOIN entre as duas tabelas eu consigo o resultado numa boa, porém, ao adicionar mais de um email para o mesmo índice, eu vou ter mais de uma vez todos os resultados, exemplo de um resultado de pesquisa:

ID | NOME | EMAIL

1 - Samir - samir@dominio.com

1 - Samir - samir@dominio2.com

2 - João - joao@dominio.com

Como eu poderia fazer para limitar esta pesquisa, a pegar apenas 1 resultado da tabela email?

Eu tentei com o LIMIT, porém só é possível usar o LIMIT após o cruzamento das tabelas, e com isto o LIMIT irá limitar todos os meus resultado e não apenas a tabela email; pode ter ficado estranho o que eu escrevi, qualquer coisa é só dizer que eu posto mais detalhes.

Muito obrigado

Pessoal, desculpa eu sei que postei no lugar errado, eu estava com o problema na cabeça que acabei nem postando corretamente o post.

O link do local correto:

http://scriptbrasil.com.br/forum/index.php?showtopic=155273

Obrigado e desculpa o transtorno!

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

2 respostass a esta questão

Posts Recomendados

  • 0
Estou com uma dificuldade em encontrar informações sobre INNER JOIN e JOIN, digo, informações básicas tem...

Tenho uma tabela que contém o índice tipo:

ÍNDICE e NOME

Em outra tabela eu tenho o índice para poder cruzar a referência (ÍNDICE) e outro campo (EMAIL)

até ai tudo bem, usando um INNER JOIN entre as duas tabelas eu consigo o resultado numa boa, porém, ao adicionar mais de um email para o mesmo índice, eu vou ter mais de uma vez todos os resultados, exemplo de um resultado de pesquisa:

ID | NOME | EMAIL

1 - Samir - samir@dominio.com

1 - Samir - samir@dominio2.com

2 - João - joao@dominio.com

Como eu poderia fazer para limitar esta pesquisa, a pegar apenas 1 resultado da tabela email?

Eu tentei com o LIMIT, porém só é possível usar o LIMIT após o cruzamento das tabelas, e com isto o LIMIT irá limitar todos os meus resultado e não apenas a tabela email; pode ter ficado estranho o que eu escrevi, qualquer coisa é só dizer que eu posto mais detalhes.

Muito obrigado

Pessoal, desculpa eu sei que postei no lugar errado, eu estava com o problema na cabeça que acabei nem postando corretamente o post.

O link do local correto:

http://scriptbrasil.com.br/forum/index.php?showtopic=155273

Obrigado e desculpa o transtorno!

em sql eu não sei, mas em php você pode utilizar o array_unique();

mais informações http://php.net/manual/en/function.array-unique.php

Link para o comentário
Compartilhar em outros sites

  • 0

Cara, você vai precisar usar o GROUP BY assim:

SELECT * FROM tabela_clientes AS c
INNER JOIN tabela_emails AS e
  ON e.id_cliente = e.id_dono_cliente
 GROUP BY c.id_cliente

assim, o MySql vai pegar somente o 1º email de cada cliente, se o cliente tiver pelo menos 1 email cadastrado.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...