Zde je nejlepší příklad Cross Join a Inner Join.
Zvažte následující tabulky
TABLE:Teacher
x------------------------x
| TchrId | TeacherName |
x----------|-------------x
| T1 | Mary |
| T2 | Jim |
x------------------------x
TABLE:Student
x--------------------------------------x
| StudId | TchrId | StudentName |
x----------|-------------|-------------x
| S1 | T1 | Vineeth |
| S2 | T1 | Unni |
x--------------------------------------x
1. VNITŘNÍ SPOJENÍ
Vnitřní spojení vybere řádky, které splňují obě tabulky .
Zvažte, že musíme najít učitele, kteří jsou třídními učiteli, a jejich odpovídající studenty. V tomto stavu musíme použít JOIN
nebo INNER JOIN
a bude
Dotaz
SELECT T.TchrId,T.TeacherName,S.StudentName
FROM #Teacher T
INNER JOIN #Student S ON T.TchrId = S.TchrId
- SQL FIDDLE
Výsledek
x--------------------------------------x
| TchrId | TeacherName | StudentName |
x----------|-------------|-------------x
| T1 | Mary | Vineeth |
| T1 | Mary | Unni |
x--------------------------------------x
2. KŘÍŽOVÉ PŘIPOJENÍ
Křížové spojení vybere všechny řádky z první tabulky a všechny řádky z druhé tabulky a zobrazí se jako kartézský součin, tj. se všemi možnostmi
Vzhledem k tomu, že potřebujeme najít všechny učitele ve škole a studenty bez ohledu na třídní učitele, musíme použít CROSS JOIN
.
Dotaz
SELECT T.TchrId,T.TeacherName,S.StudentName
FROM #Teacher T
CROSS JOIN #Student S
- SQL FIDDLE
Výsledek
x--------------------------------------x
| TchrId | TeacherName | StudentName |
x----------|-------------|-------------x
| T2 | Jim | Vineeth |
| T2 | Jim | Unni |
| T1 | Mary | Vineeth |
| T1 | Mary | Unni |
x--------------------------------------x