Ronaldo Neves Postado Maio 23, 2015 Denunciar Share Postado Maio 23, 2015 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 tabelasFUNCIONARIO 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: 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? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Maio 25, 2015 Denunciar Share Postado Maio 25, 2015 Não consegui ver a imagem, nem entendi o que você quer. Pode explicar melhor? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Ronaldo Neves Postado Maio 25, 2015 Autor Denunciar Share Postado Maio 25, 2015 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Maio 26, 2015 Denunciar Share Postado Maio 26, 2015 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Ronaldo Neves
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:
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
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.