Đây là ví dụ điển hình nhất về Tham gia chéo và Tham gia nội bộ.
Hãy xem xét các bảng sau
BẢNG:Teacher
x------------------------x
| TchrId | TeacherName |
x----------|-------------x
| T1 | Mary |
| T2 | Jim |
x------------------------x
BẢNG:Student
x--------------------------------------x
| StudId | TchrId | StudentName |
x----------|-------------|-------------x
| S1 | T1 | Vineeth |
| S2 | T1 | Unni |
x--------------------------------------x
1. THAM GIA INNER
Tham gia bên trong chọn các hàng thỏa mãn cả bảng .
Xem xét chúng ta cần tìm những giáo viên là giáo viên đứng lớp và học sinh tương ứng của họ. Trong điều kiện đó, chúng ta cần áp dụng JOIN
hoặc INNER JOIN
và sẽ
Truy vấn
SELECT T.TchrId,T.TeacherName,S.StudentName
FROM #Teacher T
INNER JOIN #Student S ON T.TchrId = S.TchrId
- SQL FIDDLE
Kết quả
x--------------------------------------x
| TchrId | TeacherName | StudentName |
x----------|-------------|-------------x
| T1 | Mary | Vineeth |
| T1 | Mary | Unni |
x--------------------------------------x
2. THAM GIA CROSS
Kết hợp chéo chọn tất cả các hàng từ bảng đầu tiên và tất cả các hàng từ bảng thứ hai và hiển thị dưới dạng tích Đề-các, tức là với tất cả các khả năng
Cân nhắc rằng chúng ta cần tìm tất cả giáo viên trong trường và học sinh không phân biệt giáo viên đứng lớp, chúng ta cần áp dụng CROSS JOIN
.
Truy vấn
SELECT T.TchrId,T.TeacherName,S.StudentName
FROM #Teacher T
CROSS JOIN #Student S
- SQL FIDDLE
Kết quả
x--------------------------------------x
| TchrId | TeacherName | StudentName |
x----------|-------------|-------------x
| T2 | Jim | Vineeth |
| T2 | Jim | Unni |
| T1 | Mary | Vineeth |
| T1 | Mary | Unni |
x--------------------------------------x