Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

CROSS JOIN vs INNER JOIN in SQL

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