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

SELECT em várias tabelas retornando todos os dados do usuário em apena


Ronaldo Neves

Pergunta

Bom dia, estou começando no MySQL e estou tendo dificuldade pra fazer uma consulta, não sei ao certo como usar o INNER JOIN ou LEFT JOIN.

A situação é a seguinte

Possuo 3 tabelas

FUNCIONARIO

id | nome | email | funcao

1 | Usuário Interna | |

2 | Usuário Externa | |

3 | Apoio | |

SECAO

id | secao

1 | acidente de transito

2 | vistoria

3 | Apoio

4 | Informática forense

5 | Fonética forense

SECAO_FUNCIONARIO

id | funcionario_id | secao_id

1 | 1 | 1

2 | 1 | 2

3 | 3 | 3

4 | 2 | 4

5 | 2 | 5

Estou fazendo a consulta mas o resultado esta voltando cada um em uma linha como na imagem:

select-2.jpg

Gostaria que o retorno fosse algo do tipo

id | nome | matricula | fone_res | fone_cel | situacao | secao

1 | Usuário Externa | | | | exercício | acidente de trânsito - crime contra o patrimônio

2 | Usuário Interna | | | | exercicio | informática forense - fonética forense

3 | Apoio | | | | exercício | apoio

Existe alguma forma de fazer isso?

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

select-2.jpg

O retorno está vindo

id | nome | matricula | fone_res | fone_cel | situacao | secao

1 | Usuário Externa | | | | exercício | acidente de trânsito

2 | Usuário Externa | | | | exercício | crime contra o patrimônio

3 | Usuário Interna | | | | exercicio | informática forense

4 | Usuário Interna | | | | exercicio | fonética forense

5 | Apoio | | | | exercício | apoio

Gostaria de uma forma de agrupar as seções, ficando apenas em uma linha todas as informações do usuário, todas as seções. Mais ou menos como no exemplo abaixo:

id | nome | matricula | fone_res | fone_cel | situacao | secao

1 | Usuário Externa | | | | exercício | acidente de trânsito - crime contra o patrimônio

2 | Usuário Interna | | | | exercicio | informática forense - fonética forense

3 | Apoio | | | | exercício | apoio

Link para o comentário
Compartilhar em outros sites

  • 0

Use a função GROUP_CONCAT em secao.

SELECT f.id,f.nome,f.matricula,f.fone_res,f.fone_cel,s.situacao,GROUP_CONCAT(se.secao)
FROM funcionario f
INNER JOIN situacao s ON s.id = f.situacao_id
INNER JOIN secao_funcionario sf ON sf.funcionario_id = f.id
INNER JOIN secao se ON se.id = sf.secao_id
GROUP BY f.id,s.situacao
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,3k
    • Posts
      652,4k
×
×
  • Criar Novo...