Đề XuấT, 2024

Editor Choice

Sự khác biệt giữa bên trái, bên phải và bên ngoài đầy đủ

Trước đó, chúng tôi đã thảo luận về sự khác biệt giữa Tham gia bên trong và Tham gia bên ngoài, nơi chúng tôi đã tổng quan về các loại Tham gia bên ngoài. Bên ngoài tham gia là người bảo tồn các bộ dữ liệu trong kết quả sẽ bị mất trong khi tham gia hoạt động. Trong bài viết này; chúng ta sẽ thảo luận về sự khác biệt giữa các loại của Tham gia ngoài. Có ba loại Tham gia ngoài; Tham gia bên ngoài bên trái, Tham gia bên ngoài bên phải và Tham gia bên ngoài đầy đủ. Bên trái, bên phải và bên ngoài đầy đủ khác nhau trong kế hoạch thực hiện của họ và kết quả thu được. Chúng ta có thể bỏ qua một từ bên ngoài từ bên trái, bên phải và Tham gia toàn bộ bên ngoài. Hãy để chúng tôi kiểm tra sự khác biệt giữa bên trái, bên phải và bên ngoài Tham gia với sự trợ giúp của biểu đồ so sánh được hiển thị bên dưới.

Biểu đồ so sánh

Cơ sở để so sánhBên trái tham giaBên phải tham giaTham gia đầy đủ bên ngoài
Căn bảnTấ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 NULLCá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 JoinTable_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ộ.

Quan sát kết quả thu được từ Left Outer Join; nó có tất cả các bộ dữ liệu từ bảng Sinh viên cùng với các bộ dữ liệu phù hợp từ cả bảng Sinh viên và Bộ. The student_id of Jimmy, Joseph Harry of Student bàn không có mặt trong bảng Sở. Do đó, các giá trị thuộc tính của bảng Bộ cho Jimmy, Joseph Harry được mở rộng thành NULL.

Đị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 JoinTable_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_ATable_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.

Quan sát kết quả thu được từ nối ngoài bên phải; nó có tất cả các bộ dữ liệu từ bảng Bộ cùng với các bộ dữ liệu phù hợp từ cả bảng Sinh viên và Bộ. Bảng Student_ID 10536 và 00954 của bảng Bộ phận không có trong bảng Sinh viên. Do đó, giá trị thuộc tính của Tên cho Student_ID 10536 và 00954 được mở rộng thành NULL.

Đị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 JoinRight Outer Join . Ban đầu, nó áp dụng phép nối bên trong trên Table_ATable_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.

Quan sát kết quả thu được từ tham gia bên ngoài đầy đủ; nó có tất cả các bộ dữ liệu từ bảng Sinh viên và Bộ cùng với các bộ dữ liệu phù hợp từ cả bảng Sinh viên và Bộ. Student_id của Jimmy, Joseph Harry, tức là 10026, 02256, 56362, của bảng Sinh viên, không có trong bảng Khoa. Do đó, các giá trị thuộc tính của bảng Bộ cho Jimmy, Joseph Harry được mở rộng thành NULL . Student_ID 10536 và 00954, của bảng Bộ, không có trong cột Student_ID của bảng Sinh viên. Do đó, giá trị thuộc tính của thuộc tính Name cho Student_ID 10536 và 00954 được mở rộng thành NULL .

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

  1. 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.
  2. 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.

Top