Aqui está o melhor exemplo de Cross Join e Inner Join.
Considere as seguintes tabelas
TABELA:
Teacher
x------------------------x
| TchrId | TeacherName |
x----------|-------------x
| T1 | Mary |
| T2 | Jim |
x------------------------x
TABELA:
Student
x--------------------------------------x
| StudId | TchrId | StudentName |
x----------|-------------|-------------x
| S1 | T1 | Vineeth |
| S2 | T1 | Unni |
x--------------------------------------x
1. INNER JOIN
Inner join seleciona as linhas que satisfazem tanto a tabela .
Considere que precisamos encontrar os professores que são professores de classe e seus alunos correspondentes. Nessa condição, precisamos aplicar
JOIN
ou INNER JOIN
e vontade Consulta
SELECT T.TchrId,T.TeacherName,S.StudentName
FROM #Teacher T
INNER JOIN #Student S ON T.TchrId = S.TchrId
- FIDDLE SQL
Resultado
x--------------------------------------x
| TchrId | TeacherName | StudentName |
x----------|-------------|-------------x
| T1 | Mary | Vineeth |
| T1 | Mary | Unni |
x--------------------------------------x
2. CROSS JOIN
A junção cruzada seleciona todas as linhas da primeira tabela e todas as linhas da segunda tabela e mostra como produto cartesiano, ou seja, com todas as possibilidades
Considere que precisamos encontrar todos os professores da escola e alunos, independentemente dos professores da turma, precisamos aplicar
CROSS JOIN
. Consulta
SELECT T.TchrId,T.TeacherName,S.StudentName
FROM #Teacher T
CROSS JOIN #Student S
- FIDDLE SQL
Resultado
x--------------------------------------x
| TchrId | TeacherName | StudentName |
x----------|-------------|-------------x
| T2 | Jim | Vineeth |
| T2 | Jim | Unni |
| T1 | Mary | Vineeth |
| T1 | Mary | Unni |
x--------------------------------------x