Olá João, olá Victor! Tudo bem?
Que ótimo que vocês levantaram essa dúvida. Vamos ver bem devagar como o problema acontece, tá?
Considerando as três tabelas separadas:
Colaborador x Curso
Colaborador | Curso |
---|
Ana | Excel |
João | Excel |
João | PowerPoint |
Colaborador x Evento
Colaborador | Evento |
---|
Ana | Workshop A |
Ana | Workshop B |
João | Workshop A |
Curso x Evento
Curso | Evento |
---|
Excel | Workshop A |
Excel | Workshop B |
PowerPoint | Workshop A |
JOIN
Agora, o que acontece no JOIN?
Quando damos JOIN nas tabelas, o banco de dados tenta combinar todas as linhas que têm algum valor em comum.
Vamos fazer o passo a passo:
Pegamos uma linha da tabela Colaborador x Curso, exemplo:
Ana | Excel
Procuramos onde Ana aparece na tabela Colaborador x Evento:
- Ana aparece no Workshop A
- Ana aparece no Workshop B
Agora temos dois pares possíveis:
- Ana | Excel | Workshop A
- Ana | Excel | Workshop B
Cruzamos com a tabela Curso x Evento, procurando se o Curso Excel está nesses Workshops:
- Excel + Workshop A → Existe
- Excel + Workshop B → Existe
✅ As duas combinações são válidas!
Agora, vamos tentar outro exemplo:
Linha da tabela Colaborador x Curso:
João | PowerPoint
Onde João aparece na tabela Colaborador x Evento?
- João aparece no Workshop A
Então podemos montar:
- João | PowerPoint | Workshop A
Conferindo no Curso x Evento:
- PowerPoint + Workshop A → Existe
✅ Combinação válida.
O problema aparece agora:
Como na tabela Curso x Evento também existe:
E como Ana está no Workshop B (na tabela Colaborador x Evento), o JOIN pode tentar montar:
- Ana | PowerPoint | Workshop B
Mas isso não existia antes! Ana nunca fez PowerPoint no Workshop B.Foi uma junção errada porque:
- Ana nunca fez o curso PowerPoint
- PowerPoint acontece no Workshop B
- Ana participou do Workshop B
O sistema combinou tudo que podia. Ele não sabe que você não queria combinar Ana com PowerPoint – ele simplesmente junta o que os dados permitem.
Agora, atenção:
Para saber se uma combinação é verdadeira ou falsa, você deve comparar o resultado do JOIN com a tabela original completa.
A tabela original, que mostra o que realmente existia, era a seguinte:
Colaborador | Curso | Evento |
---|
Ana | Excel | Workshop A |
Ana | Excel | Workshop B |
João | Excel | Workshop A |
João | PowerPoint | Workshop A |
Essa tabela é a referência.Tudo o que não existir nela é considerado uma combinação falsa 🚨.
✅ Se a linha montada existir aqui → é verdadeira.
🚨 Se não existir → é falsa!
Resumindo:
O JOIN vai "encaixar" tudo que combinar as colunas. Se o mesmo colaborador aparecer em vários eventos, e o curso aparecer em vários eventos, o banco gera todas as combinações possíveis que respeitam os dados... mesmo que a combinação nunca tenha acontecido na prática!
Por isso, sempre compare com a tabela original para confirmar se a linha faz sentido.
Dica prática para vocês:
Sempre que der JOIN em tabelas separadas, pergunte:
- "Esse colaborador fez esse curso?"
- "Esse curso aconteceu nesse evento?"
- "Esse colaborador foi nesse evento?"
E compare o resultado com a tabela original completa!
Se bater → linha verdadeira ✅.
Se não bater → linha falsa 🚨.
Espero que agora tenha ficado mais claro!
Abraços e bons estudos! ✨
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!