Ecco il miglior esempio di Cross Join e Inner Join.
Considera le seguenti tabelle
TABELLA :Teacher
x------------------------x
| TchrId | TeacherName |
x----------|-------------x
| T1 | Mary |
| T2 | Jim |
x------------------------x
TABELLA :Student
x--------------------------------------x
| StudId | TchrId | StudentName |
x----------|-------------|-------------x
| S1 | T1 | Vineeth |
| S2 | T1 | Unni |
x--------------------------------------x
1. COLLEGAMENTO INTERIORE
Inner join seleziona le righe che soddisfano entrambe le tabelle .
Considera che dobbiamo trovare gli insegnanti che sono insegnanti di classe e i loro studenti corrispondenti. In tale condizione, dobbiamo applicare JOIN
o INNER JOIN
e lo farà
Interroga
SELECT T.TchrId,T.TeacherName,S.StudentName
FROM #Teacher T
INNER JOIN #Student S ON T.TchrId = S.TchrId
- SQL FIDDLE
Risultato
x--------------------------------------x
| TchrId | TeacherName | StudentName |
x----------|-------------|-------------x
| T1 | Mary | Vineeth |
| T1 | Mary | Unni |
x--------------------------------------x
2. CROSS JIN
Cross join seleziona tutte le righe della prima tabella e tutte le righe della seconda tabella e si presenta come prodotto cartesiano, ovvero con tutte le possibilità
Considerando che dobbiamo trovare tutti gli insegnanti della scuola e gli studenti indipendentemente dagli insegnanti della classe, dobbiamo fare domanda CROSS JOIN
.
Interroga
SELECT T.TchrId,T.TeacherName,S.StudentName
FROM #Teacher T
CROSS JOIN #Student S
- SQL FIDDLE
Risultato
x--------------------------------------x
| TchrId | TeacherName | StudentName |
x----------|-------------|-------------x
| T2 | Jim | Vineeth |
| T2 | Jim | Unni |
| T1 | Mary | Vineeth |
| T1 | Mary | Unni |
x--------------------------------------x