sql >> Databasteknik >  >> RDS >> Sqlserver

CROSS JOIN vs INNER JOIN i SQL

Här är det bästa exemplet på Cross Join och Inner Join.

Tänk på följande tabeller

TABELL :Teacher

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

TABELL :Student

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

1. INRE JOIN

Inner join väljer de rader som uppfyller båda tabellen .

Tänk på att vi måste hitta de lärare som är klasslärare och deras motsvarande elever. I det tillståndet måste vi tillämpa JOIN eller INNER JOIN och kommer

Fråga

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

Resultat

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

2. CROSS JOIN

Cross join väljer alla rader från den första tabellen och alla rader från den andra tabellen och visas som kartesisk produkt, dvs med alla möjligheter

Tänk på att vi måste hitta alla lärare i skolan och elever, oavsett klasslärare, vi måste tillämpa CROSS JOIN .

Fråga

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

Resultat

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


  1. MySQL PI() Funktion – Returnera värdet av π (pi)

  2. Hur SQL Server DIFFERENCE()-funktionen fungerar

  3. MySQL INSERT IF (anpassade if-satser)

  4. Konvertera från asynkron till synkron replikering i PostgreSQL