Trong SQL, một tham gia được sử dụng để so sánh và kết hợp - tham gia theo nghĩa đen - và trả về các hàng dữ liệu cụ thể từ hai hoặc nhiều bảng trong cơ sở dữ liệu. An tham gia nội bộ tìm và trả về dữ liệu khớp từ các bảng trong khi tham gia bên ngoài tìm và trả về dữ liệu trùng khớp và một số dữ liệu khác nhau từ các bảng.
Một phép nối bên trong tập trung vào điểm chung giữa hai bảng. Khi sử dụng phép nối bên trong, phải có ít nhất một số dữ liệu khớp giữa hai (hoặc nhiều) bảng được so sánh. Một bảng tham gia tìm kiếm bên trong để tìm dữ liệu khớp hoặc chồng chéo. Khi tìm thấy nó, phép nối bên trong kết hợp và trả về thông tin vào một bảng mới.
Hãy xem xét một kịch bản chung của hai bảng: giá và số lượng sản phẩm. Thông tin chung trong hai bảng là tên sản phẩm, vì vậy đó là cột logic để tham gia các bảng trên. Có một số sản phẩm phổ biến trong hai bảng; các bảng khác là duy nhất cho một trong các bảng và không có kết quả khớp trong bảng khác.
Một sự tham gia bên trong Các sản phẩm trả về thông tin về chỉ những sản phẩm phổ biến trong cả hai bảng.
Một kết nối bên ngoài trả về một tập hợp các bản ghi (hoặc các hàng) bao gồm những gì một kết nối bên trong sẽ trả về nhưng cũng bao gồm các hàng khác không tìm thấy kết quả khớp tương ứng trong bảng khác.
Có ba loại kết nối bên ngoài:
Mỗi liên kết ngoài này đề cập đến phần dữ liệu được so sánh, kết hợp và trả về. Đôi khi null sẽ được tạo ra trong quá trình này vì một số dữ liệu được chia sẻ trong khi dữ liệu khác thì không.
Tham gia ngoài bên trái sẽ trả về tất cả dữ liệu trong Bảng 1 và tất cả dữ liệu được chia sẻ (vì vậy, phần bên trong của ví dụ về sơ đồ Venn), nhưng chỉ có dữ liệu tương ứng từ Bảng 2, đó là liên kết bên phải.
Trong cơ sở dữ liệu mẫu của chúng tôi, có hai sản phẩm - cam và cà chua - ở bên trái '(Giá cả bảng) không có mục tương ứng trên 'bên phải' (bảng Số lượng). Trong một liên kết bên trái, các hàng này được bao gồm trong tập kết quả với NULL trong cột Số lượng. Các hàng khác trong kết quả giống như tham gia bên trong.
Phép nối ngoài bên phải trả về dữ liệu của Bảng 2 và tất cả dữ liệu được chia sẻ, nhưng chỉ có dữ liệu tương ứng từ Bảng 1, đó là phép nối trái.
Tương tự như ví dụ nối trái, đầu ra của phép nối ngoài phải bao gồm tất cả các hàng của phép nối bên trong và hai hàng - bông cải xanh và quả bí - từ 'bên phải' (Số lượng bảng) không có mục phù hợp ở bên trái.
Một tham gia bên ngoài đầy đủ, hoặc tham gia đầy đủ, đó là không phải được hỗ trợ bởi hệ thống quản lý cơ sở dữ liệu MySQL phổ biến, kết hợp và trả về tất cả dữ liệu từ hai bảng trở lên, bất kể có thông tin chia sẻ hay không. Hãy nghĩ về một tham gia đầy đủ như chỉ đơn giản là sao chép tất cả các thông tin được chỉ định, nhưng trong một bảng, thay vì nhiều bảng. Khi thiếu dữ liệu khớp, null sẽ được tạo.
Đây chỉ là những điều cơ bản, nhưng nhiều điều có thể được thực hiện với các phép nối. Thậm chí có những tham gia có thể loại trừ các tham gia khác!
Video này giải thích sự khác biệt giữa các loại tham gia khác nhau. Nó được kích hoạt để bắt đầu tại điểm bắt đầu cuộc thảo luận về việc tham gia.