Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

CROSS JOIN срещу INNER JOIN в SQL

Ето най-добрия пример за кръстосано свързване и вътрешно свързване.

Помислете за следните таблици

ТАБЛИЦА :Teacher

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

ТАБЛИЦА :Student

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

1. ВЪТРЕШНО СЪЕДИНЕНИЕ

Вътрешното съединение избира редовете, които удовлетворяват и двете таблица .

Помислете, че трябва да намерим учителите, които са класни ръководители, и съответните им ученици. При това условие трябва да приложим JOIN или INNER JOIN и ще

Запитване

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

Резултат

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

2. КРЪСТНО ПРИСЪЕДИНЯВАНЕ

Кръстосаното свързване избира всички редове от първата таблица и всички редове от втората таблица и се показва като декартов продукт, т.е., с всички възможности

Помислете, че трябва да намерим всички учители в училището и ученици, независимо от класните ръководители, трябва да приложим CROSS JOIN .

Запитване

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

Резултат

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. прикачената база данни е само за четене

  2. SQL:Какво е по-добре бит или символ (1)

  3. Как да зададете инвариантната култура, когато използвате FORMAT() в SQL Server

  4. Скрипт за запазване на varbinary данни на диск

  5. Йерархичен списък с типове тригерни събития в SQL Server 2019