Sự khác nhau giữa Left và Right Join Sự khác biệt giữa

Anonim

Trái với quyền tham gia

Khi giao dịch với SQL, tham gia là một tên phổ biến sẽ xuất hiện mọi lúc và mọi lúc. Mệnh đề join giúp kết hợp các bản ghi từ các bảng khác nhau trong một bộ dữ liệu. Việc tham gia có hiệu lực tạo ra một bảng có thể được sử dụng như nó được hoặc lăn ra với những người khác. Do đó, nên hiểu những sự kết hợp này và sự khác biệt giữa chúng để biết được sự tham gia cụ thể, và liệu phải hay trái nên được thực hiện trong trường hợp đặc biệt.

Để hiểu được sự kết hợp tốt hơn và sự khác biệt của chúng, điều quan trọng là phải hiểu các loại liên kết có sẵn. Nói chung có ba loại liên kết. Các tham gia bao gồm tham gia bên trong, tham gia chéo và tham gia bên ngoài. Việc tham gia nội bộ thường so sánh các bảng và sẽ chỉ đưa ra hoặc trả lại kết quả trong trường hợp tìm kiếm một trận đấu. Chức năng chính của kết nối bên trong là giảm kích thước của các bộ kết quả.

Kết nối chéo, mặt khác so sánh hai bảng và đưa ra một sự trở lại của mỗi và mọi sự kết hợp có thể đến từ các hàng của cả hai bảng. Nhiều kết quả mong đợi từ sự tham gia này và hầu hết trong số họ có thể không có ý nghĩa. Vì vậy, nên sử dụng tham gia này một cách thận trọng.

Tham gia ngoài tham gia so sánh các bảng biểu và trả về dữ liệu khi một kết hợp có sẵn. Như đã thấy trong kết nối bên trong, kết nối bên ngoài nhân bản các hàng trong một bảng nhất định trong trường hợp phù hợp với hồ sơ được nhìn thấy. Kết quả của các kết nối bên ngoài thường lớn hơn và do đó các bộ dữ liệu lớn bởi vì bộ tự nó không bị xóa khỏi bộ.

Liên kết bên trái đề cập đến việc giữ tất cả các bản ghi từ bảng thứ nhất bất kể kết quả và chèn giá trị NULL khi giá trị của bảng thứ hai không phù hợp. Một quyền tham gia, mặt khác, đề cập đến việc giữ tất cả các hồ sơ đến từ bảng thứ hai bất kể kết quả là gì, và sử dụng các giá trị NULL khi kết quả không phù hợp với những người trong bảng 1.

Do đó nối bên trái nên giữ tất cả các hàng nằm trong bảng 'trái' bất kể có một hàng phù hợp với nó trên bảng 'bên phải' hay không. Bảng bên trái do đó đề cập đến bảng được trình bày trước tiên trong tuyên bố chung. Nó sẽ xuất hiện ở bên trái của từ khóa 'join' xảy ra trên bảng. Khi kết nối bên trái được thực hiện, tất cả các hàng từ bên trái sẽ được trả về. Các cột không phù hợp trong bảng sẽ được điền đầy với một NULL bất cứ khi nào không có sự trùng khớp.

Điều quan trọng cần lưu ý là khi đối phó với hai tham gia, tất cả các hàng từ bên trái của bảng được hiển thị trong bảng trong một nối bên trái. Các kết quả hiển thị chính họ không phụ thuộc vào việc có phù hợp với các cột có trong bảng bên phải hay không.Trong một kết nối bên phải, tất cả các hàng từ bên phải được hiển thị và điều này là bất kể có bất kỳ cột phù hợp ở phía bên trái của bảng.

Sự lựa chọn cho dù để đi cho bên ngoài trái tham gia hoặc quyền bên ngoài tham gia không quan trọng như kết quả tương tự được hiển thị. Các chức năng mà một bên phải bên ngoài tham gia trình bày là chức năng tương tự mà bên trái tham gia trình bày. Bằng cách đơn giản chuyển đổi thứ tự trong đó các bảng xuất hiện trong câu lệnh SQL, bạn có thể mong đợi các kết quả tương tự, bất kể tham gia được sử dụng.

Tóm tắt

Tham gia có ba nhóm chính - tham gia bên trong, tham gia chéo và tham gia bên ngoài

Một kết nối bên trái hiển thị tất cả các hàng từ bên trái của bảng

Một quyền tham gia hiển thị tất cả các hàng từ bên phải của bảng

Việc thay thế chuỗi SQL có thể loại bỏ việc sử dụng cả hai nối bên phải và bên trái và thay vào đó chỉ sử dụng một.