Dificuldade com junção entre tabelas.
Boa tarde! Será que alguém poderia me ajudar com a seguinte dificuldade, eu 5 tabelas:
Tabela voluntarios, composta pelos campos id_voluntario(chave primária), nome, sobrenome;
Tabela habilidades, composta pelos campos id_habilidade(chave primária), nome;
Tabela voluntarios_habilidades, composta pelos campos id_hab_voluntarios(chave primária), voluntario_id(fk para a pk da tabela voluntarios) e habilidades_id(fk para a pk da tabela habilidades);
Tabela treinamentos, composta pelos campos id_treinamento(chave primária), nome;
Tabela voluntarios_treinamentos composta peloas campos id_trein_realizado(chave primária), voluntario_id(fk para a pk da tabela voluntarios) e treinamentos_id(fk para a pk da tabela treinamentos);
Eu vou precisar criar filtros como voluntários que tenham x, y, z habilidades e voluntários que tenham a, b, c treinamentos. Tentei criar uma view usando INNER JOIN conforme consulta abaixo:
SELECT voluntarios.id_voluntario, voluntarios.nome, habilidades_voluntario.habilidades_id,
habilidades.nome AS 'habilidade_nome', treinamentos_realizados.treinamentos_id, treinamentos.nome AS 'treinamento_nome'
FROM voluntarios
INNER JOIN habilidades_voluntario ON voluntarios.id_voluntario=habilidades_voluntario.voluntario_id
INNER JOIN habilidades ON habilidades_voluntario.habilidades_id=habilidades.id_habilidade
INNER JOIN treinamentos_realizados ON voluntarios.id_voluntario=treinamentos_realizados.voluntario_id
INNER JOIN treinamentos ON treinamentos_realizados.treinamentos_id=treinamentos.id_treinamento;
Porém está consulta só está junto a tabelas se o voluntário tiver uma habilidade e um treinamento, se tiver uma habilidade e nenhum treinamento e vice versa, não está sendo incluso no join. Esta está sendo a minha dificuldade. Será que alguém sabe o que estou fazendo de errado ou uma mneira melhor de se fazer isto?
Discussão (3)
Carregando comentários...