Jump to content


Photo

Consulta Mysql Retornar Um Resultado Por Nome


  • Faça o login para participar
3 replies to this topic

#1 rootzig

rootzig

    Novato no fórum

  • Usuários
  • 2 posts
  • Sexo:Não informado

Posted 17/01/2011, 11:06

Boa tarde,
não estou conseguindo resolver o seguinte problema,
os resultado estão vindo certos, vem pra mim 4 nomes iguais, preciso que só mostre um

id_funcionario 	nome
60              teste 
60              teste
60              teste
60              teste
43              teste1 
43              teste1
43              teste1
43              teste1

a consulta que estou fazendo é a seguinte:

SELECT 
   funcionario.*,
   ponto.*,
   tbunidades.*
FROM 
  funcionario
INNER JOIN ponto ON(funcionario.id_funcionario = ponto.id_funcionario ) 
INNER JOIN tbunidades ON(funcionario.id_unidade = tbunidades.ID_UNIDADES)

valeu, té mais

Edição feita por: rootzig, 17/01/2011, 11:12.


#2 Leonardo Garcia

Leonardo Garcia

    Normal

  • Usuários
  • 110 posts
  • Sexo:Masculino
  • Localidade:Londrina Paraná

Posted 21/01/2011, 22:57

post o SQl do DB... eu monto a consulta... (estou com prequisa de montar um banco e popular)
Eu podia tá matando, roubando ou me prostituindo. Mas só quero um ponto.

#3 Spyder.RV

Spyder.RV

    Turista

  • Usuários
  • 54 posts
  • Sexo:Masculino
  • Localidade:Rio Verde - GO

Posted 04/02/2011, 13:36

Boa tarde,
não estou conseguindo resolver o seguinte problema,
os resultado estão vindo certos, vem pra mim 4 nomes iguais, preciso que só mostre um

id_funcionario 	nome
60              teste 
60              teste
60              teste
60              teste
43              teste1 
43              teste1
43              teste1
43              teste1

a consulta que estou fazendo é a seguinte:

SELECT 
   funcionario.*,
   ponto.*,
   tbunidades.*
FROM 
  funcionario
INNER JOIN ponto ON(funcionario.id_funcionario = ponto.id_funcionario ) 
INNER JOIN tbunidades ON(funcionario.id_unidade = tbunidades.ID_UNIDADES)

valeu, té mais


rootzig,

Se você tá fazendo join, tá juntando as tabelas... aí pra cada ocorrência de funcionário, vai repetir a linha para quantas ocorrências tiver para esse funcionário em cada uma das tabelas que fizer JOIN.


exemplo: o funcionario (60 - teste), tem 3 ocorrencias em ponto, então o join irá juntar o registro em funcionario + os 3 registros em ponto, gerando 3 linhas únicas, e assim por diante.

O ideal seria você colocar os campos que você realmente precisa na consulta.

E para evitar linhas repetidas, use SELECT DISTINCT ou SELECT DISTINCTROW. Assim, se tiver linhas duplicadas, as mesmas serão representadas por uma linha somente.... Mas atenção, somente vai ter efeito para resultados com linhas idênticas...


Abraço,

Espero ter ajudado!
Wemerson C. Guimaraes
Rio Verde - GO
C2Q Q6600 + Asus P5KPL + 4GB DDR2 PC6400 + ATI X1650 512 DDR2 + 570 GB HD

#4 André Manoel

André Manoel

    Doutor

  • Usuários
  • 996 posts
  • Sexo:Masculino
  • Localidade:Brasilia

Posted 04/02/2011, 13:54

ou então agrupar pelo nome:

SELECT 
   funcionario.*,
   ponto.*,
   tbunidades.*
FROM 
  funcionario
INNER JOIN ponto ON(funcionario.id_funcionario = ponto.id_funcionario ) 
INNER JOIN tbunidades ON(funcionario.id_unidade = tbunidades.ID_UNIDADES)
GROUP BY nome

(y)
Iniciando na Ajuda On line...

Posted Image Meu post lhe ajudou? Reputar/votar é uma das formas de agradecer.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq