Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

CROSS JOIN vs. INNER JOIN in SQL

Hier ist das beste Beispiel für Cross Join und Inner Join.

Betrachten Sie die folgenden Tabellen

TABELLE :Teacher

x------------------------x
| TchrId   | TeacherName | 
x----------|-------------x
|    T1    |    Mary     |
|    T2    |    Jim      |
x------------------------x

TABELLE :Student

x--------------------------------------x
|  StudId  |    TchrId   | StudentName | 
x----------|-------------|-------------x            
|    S1    |     T1      |    Vineeth  |
|    S2    |     T1      |    Unni     |
x--------------------------------------x

1. INNERER JOIN

Inner Join wählt die Zeilen aus, die sowohl die Tabelle erfüllen .

Bedenken Sie, dass wir die Lehrer finden müssen, die Klassenlehrer sind, und ihre entsprechenden Schüler. In diesem Fall müssen wir JOIN anwenden oder INNER JOIN und wird

Abfrage

SELECT T.TchrId,T.TeacherName,S.StudentName 
FROM #Teacher T
INNER JOIN #Student S ON T.TchrId = S.TchrId
  • SQL-FIDDLE

Ergebnis

x--------------------------------------x
|  TchrId  | TeacherName | StudentName | 
x----------|-------------|-------------x            
|    T1    |     Mary    |    Vineeth  |
|    T1    |     Mary    |    Unni     |
x--------------------------------------x

2. CROSS JOIN

Cross Join wählt alle Zeilen aus der ersten Tabelle und alle Zeilen aus der zweiten Tabelle aus und zeigt sie als kartesisches Produkt, dh mit allen Möglichkeiten

Wenn wir bedenken, dass wir alle Lehrer in der Schule und alle Schüler unabhängig von den Klassenlehrern finden müssen, müssen wir CROSS JOIN anwenden .

Abfrage

SELECT T.TchrId,T.TeacherName,S.StudentName 
FROM #Teacher T
CROSS JOIN #Student S 
  • SQL-FIDDLE

Ergebnis

x--------------------------------------x
|  TchrId  | TeacherName | StudentName | 
x----------|-------------|-------------x            
|    T2    |     Jim     |    Vineeth  |
|    T2    |     Jim     |    Unni     |
|    T1    |     Mary    |    Vineeth  |
|    T1    |     Mary    |    Unni     |
x--------------------------------------x