Biểu đồ so sánh
Cơ sở để so sánh | Bên trái tham gia | Bên phải tham gia | Tham gia đầy đủ bên ngoài |
---|---|---|---|
Căn bản | Tất cả các bộ dữ liệu của bảng bên trái vẫn còn trong kết quả. | Tất cả các bộ dữ liệu của bảng bên phải vẫn còn trong kết quả. | Tất cả các bộ dữ liệu từ bên trái cũng như bên phải vẫn còn trong kết quả. |
Tiện ích mở rộng NULL | Các bộ dữ liệu của bảng bên trái không có bộ dữ liệu phù hợp trong bảng bên phải được mở rộng với giá trị NULL cho các thuộc tính của bảng bên phải. | Các bộ dữ liệu của bảng bên phải không có bộ dữ liệu phù hợp trong bảng bên trái được mở rộng với giá trị NULL cho các thuộc tính của bảng bên trái. | Các bộ dữ liệu bên trái cũng như bảng bên phải không có bộ dữ liệu phù hợp ở bảng bên phải và bên trái được mở rộng với giá trị NULL cho các thuộc tính của bảng bên phải và bên trái. |
Định nghĩa của bên ngoài tham gia
Giả sử chúng ta có, Bảng Table_A Bên ngoài Tham gia Table_B Thắng . Vì vậy, Table_A là bảng bên trái của chúng tôi vì nó xuất hiện ở bên trái của hoạt động Left Outer Join và Table_B là bảng bên phải của chúng tôi.
Ban đầu, phép nối bên trong sẽ được áp dụng trên Table_A và Table_B sẽ trả về tất cả các bộ dữ liệu phù hợp từ bảng A và B.
Tiếp theo, nó sẽ trả về tất cả các bộ dữ liệu từ Table_A không có bộ dữ liệu phù hợp trong Table_B. Như vậy, các bộ dữ liệu kết quả sẽ được đệm bằng các giá trị NULL cho các thuộc tính của bảng bên phải.
Do đó, kết quả thu được từ Left Outer Join giữ lại tất cả các bộ dữ liệu từ bảng bên trái và chỉ các bộ dữ liệu phù hợp từ bảng bên phải.
Hãy để chúng tôi thảo luận về Left Outer Tham gia với một ví dụ; chúng tôi có hai bảng dưới đây, Bảng sinh viên và Bảng khoa .
Bây giờ, chúng tôi sẽ áp dụng Left Outer Join, trên Bảng sinh viên và khoa.
CHỌN * TỪ Học sinh TRỰC TUYẾN
TRÊN sinh viên. Student_ID = Sở.Student_ID
Trong truy vấn trên, bảng Học sinh là bảng bên trái và bảng Bảng là bảng bên phải. Vì vậy, theo Left Outer Join, kết quả phải có tất cả các bộ dữ liệu từ bảng Sinh viên và chỉ phù hợp với các bộ dữ liệu từ bảng Bộ.
Định nghĩa về bên ngoài tham gia
Giả sử chúng ta có, Bảng Table_A Bên ngoài Tham gia Table_Báng . Vì vậy, Table_A là bảng bên trái của chúng tôi vì nó xuất hiện ở bên trái của hoạt động Right Outer Join và Table_B là bảng bên phải của chúng tôi.
Giống như trong Left Outer Join, ban đầu, phép nối bên trong sẽ được áp dụng trên Table_A và Table_B sẽ trả về tất cả các bộ dữ liệu phù hợp từ bảng A và B.
Tiếp theo, nó sẽ trả về tất cả các bộ dữ liệu từ Table_B không có bộ dữ liệu phù hợp trong Table_A. Như vậy, các bộ dữ liệu kết quả sẽ được đệm bằng các giá trị NULL cho các thuộc tính của bảng bên trái.
Do đó, kết quả thu được từ phép nối ngoài bên phải giữ lại tất cả các bộ dữ liệu từ bảng bên phải và chỉ khớp các bộ dữ liệu từ bảng bên trái.
Hãy để chúng tôi thảo luận về Right Outer Tham gia với một ví dụ; ở trên chúng tôi có hai bảng, bảng sinh viên và bảng khoa.
Bây giờ, chúng tôi sẽ áp dụng Right Outer Join vào bảng Sinh viên và bảng Sở.
CHỌN * TỪ Học sinh
TRÊN sinh viên. Student_ID = Sở.Student_ID
Trong truy vấn trên, Bảng sinh viên là Bảng bên trái và Bảng cục là bảng bên phải của chúng tôi. Theo hoạt động của Right Outer Join, kết quả phải bao gồm tất cả các bộ dữ liệu từ bảng Bộ và chỉ các bộ dữ liệu khớp với Bảng sinh viên.
Định nghĩa tham gia đầy đủ bên ngoài
Giả sử chúng ta có, Bảng Table_A Toàn bộ bên ngoài Tham gia Bảng_Báng . Vì vậy, Table_A là bảng bên trái của chúng tôi vì nó xuất hiện ở bên trái của hoạt động Full Outer Join và Table_B là bảng bên phải của chúng tôi.
Full Outer Join là sự kết hợp của cả hai, Left Outer Join và Right Outer Join . Ban đầu, nó áp dụng phép nối bên trong trên Table_A và Table_B để truy xuất các bộ dữ liệu khớp từ cả hai bảng. Sau đó, nó mở rộng các bộ dữ liệu của Table_A với NULL không có bộ dữ liệu phù hợp trong Table_B. Hơn nữa, nó mở rộng các bộ dữ liệu đó từ Table_B với NULL không có bộ dữ liệu phù hợp trong Table_A.
Do đó, Full Outer Join giữ lại tất cả các bộ dữ liệu từ bên trái cũng như bảng bên phải, cùng với các bộ dữ liệu phù hợp của cả hai bảng.
Hãy để chúng tôi thảo luận về FULL Outer Tham gia với một ví dụ; chúng tôi có hai bảng ở trên, Bảng sinh viên và Bảng khoa .
Bây giờ, chúng tôi sẽ áp dụng Full Outer Join cho bảng Sinh viên và bảng Khoa.
CHỌN * TỪ Học sinh HOÀN TOÀN THAM GIA
TRÊN sinh viên. Student_ID = Sở.Student_ID
Trong truy vấn trên, Bảng sinh viên là bảng bên trái của chúng tôi và Bảng cục là bảng bên phải của chúng tôi. Theo Full Outer Join, kết quả phải bao gồm tất cả các bộ dữ liệu từ cả hai bảng.
Sự khác biệt chính giữa bên trái, bên phải và bên ngoài đầy đủ Tham gia
- Kết quả của Left Outer Join có tất cả các bộ dữ liệu của bảng bên trái. Tương tự, kết quả của Right Outer Join có tất cả các bộ dữ liệu của bảng bên phải. Và kết quả của Full Outer Join có tất cả các bộ dữ liệu từ cả bên trái và bên phải bảng.
- Trong Left Outer Join, các bộ dữ liệu của bảng bên trái không có bộ dữ liệu phù hợp trong bảng bên phải được mở rộng với các giá trị Null cho các thuộc tính của bảng bên phải. Đối diện là trường hợp cho Right Outer Tham gia. Và trong Full Outer Join, các bộ dữ liệu từ các bảng bên trái và bên phải không có bộ dữ liệu phù hợp ở các bảng bên phải và bên trái được mở rộng tương ứng với NULL cho các thuộc tính của bảng bên phải và bên trái.
Phần kết luận:
Chăm sóc các vị trí của tên bảng trong một truy vấn. Vì vị trí của tên bảng trong truy vấn quyết định bảng sẽ được coi là bảng bên trái hay bảng bên phải.