Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
Group By ID, Nome
O group by vai funcionar, mas se a query estiver percorrendo mais registros do que deveria por falta de join vai ter uma perda de performance, pode ser pouca, mas o quanto mais otimizar as query melhor
>
vem pra mim 4 nomes iguais, preciso que só mostre um
De acordo com o autor do tópico está repetindo os registros de sua consulta.
Ele precisa que lhe traga somente um registro. A solução foi postada.
Rootzig. Uma dica, coloque no SELECT somente o que você quer mostrar, isso evita esforço computacional. Por exemplo, na sua consulta você colocou * nas três tabelas.
Exemplo:
SELECT
funcionario.id_funcionario
funcionarios.nome
tbunidades.unidade
ponto.nome_ponto
FROM
funcionario
INNER JOIN
ponto ON ponto.id_funcionario = funcionario.id_funcionario
INNER JOIN
tbunidades ON tbunidades.id_unidade = funcionario.id_unidadeValeu a todos ae,
consegui aqui, usei o DISTINCT
acabei mudando a select para:
SELECT DISTINCT p.data,f.nome,u.UNIDADE,p.falta
FROM funcionario as f
INNER JOIN ponto as p ON f.id_funcionario = p.id_funcionario
INNER JOIN tbunidades as u ON f.id_unidade = u.ID_UNIDADES WHERE falta = 'FA'
Me parece que está faltando "join" para ele repetir, ou está repetido mesmo?
Posta a estrutura das tabelas e suas ligações