Trái vs Phải Tham gia
Khi làm việc với SQL, tham gia là một tên phổ biến sẽ xuất hiện mọi lúc. Mệnh đề nối giúp kết hợp các bản ghi từ các bảng khác nhau trong một tập dữ liệu. Sự kết hợp có hiệu lực tạo ra một bảng có thể được sử dụng như nó hoặc được triển khai với các bảng khác. Do đó, nên hiểu các liên kết này và sự khác biệt giữa chúng để biết liên kết cụ thể và nên sử dụng phải hay trái trong các trường hợp đặc biệt.
Để hiểu các phép nối 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. Nhìn chung có ba loại tham gia. Các phép nối này bao gồm phép nối bên trong, phép nối chéo và phép nối ngoài. Phép nối bên trong thường so sánh các bảng và sẽ chỉ đưa ra hoặc trả về kết quả trong trường hợp tìm thấy kết quả khớp. Chức năng chính của liên kết bên trong là giảm kích thước của tập kết quả.
Mặt khác, các phép nối chéo so sánh hai bảng và trả về 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ả được mong đợi từ sự tham gia này và hầu hết trong số chúng thậm chí có thể không có ý nghĩa. Do đó sử dụng tham gia này nên được thực hành thận trọng.
Phép nối bên ngoài sẽ so sánh các bảng và trả về dữ liệu khi có kết quả khớp. Giống như đã thấy trong phép nối bên trong, phép nối ngoài trùng lặp các hàng trong một bảng đã cho trong trường hợp các bản ghi khớp được nhìn thấy. Kết quả của các phép nối ngoài thường lớn hơn và do đó các tập dữ liệu lớn vì bản thân tập hợp không bị xóa khỏi tập hợp.
Tham gia bên trái đề cập đến việc giữ tất cả các bản ghi từ bảng 1 bất kể kết quả và chèn các giá trị NULL khi các giá trị bảng thứ hai không khớp. Mặt khác, một tham gia đúng đề cập đến việc giữ tất cả các bản ghi đến từ bảng 2 bất kể kết quả là gì và việc sử dụng các giá trị NULL khi kết quả không khớp với các bảng trong bảng 1.
Do đó, một kết nối bên ngoài bên trái giữ lại tất cả các hàng trong bảng 'bên trái' bất kể có hàng nào khớp với nó trên bảng 'bên phải' hay không. Do đó, bảng bên trái đề cập đến bảng xuất hiện đầu tiên trong tuyên bố chung. Nó sẽ xuất hiện ở bên trái của từ khóa 'tham gia' xảy ra trên bàn. Khi kết nối bên ngoà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 khớp trong bảng sẽ được điền bằng NULL bất cứ khi nào không có kết quả khớp.
Điều quan trọng cần lưu ý là khi giao dịch với hai phép nối này, 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 liên kết ngoài bên trái. Các kết quả tự hiển thị bất kể liệu có bất kỳ cột phù hợp nào có trong bảng bên phải hay không. Trong một kết nối bên ngoà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 không liên quan đến việc có bất kỳ cột phù hợp nào ở phía bên trái của bảng không.
Việc lựa chọn nên đi tham gia bên ngoài bên trái hay tham gia bên ngoài bên phải không quan trọng vì kết quả tương tự được hiển thị. Các chức năng mà một tham gia bên ngoài bên phải trình bày là các chức năng tương tự như các bên ngoài bên trái trình bày. Bằng cách đơn giản chuyển đổi thứ tự xuất hiện các bảng trong câu lệnh SQL, bạn có thể mong đợi kết quả tương tự, bất kể tham gia được sử dụng.
Tóm lược
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 ngoà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 kết nối bên phải hiển thị tất cả các hàng từ bên phải của bảng
Việc xen kẽ chuỗi SQL có thể loại bỏ việc sử dụng cả hai phép nối ngoài phải và trái và thay vào đó chỉ sử dụng một.