Sự khác biệt chính: Tham gia trong SQL được thực hiện để kết hợp dữ liệu của hai bảng khác nhau. Một tham gia bên trong là một điều kiện dẫn đến các hàng thỏa mãn mệnh đề 'where' trong tất cả các bảng. trong khi đó Tham gia ngoài là điều kiện dẫn đến các hàng đó thỏa mãn mệnh đề 'where' trong Trò chơi ít nhất một trong các bảng.
Khi thực hiện các phép nối, các bảng tạm thời được tạo, chúng được dựa trên các cột. Luôn luôn có hai bảng, cho các điều kiện tham gia. Những điều kiện này, sau đó hợp nhất các thành phần tương ứng của một bảng với các thành phần khác và tạo ra một bảng hoàn toàn mới. Mục tiêu của các bảng này là trích xuất dữ liệu hoặc thông tin có ý nghĩa và cần thiết. Tùy thuộc vào các điều kiện, có hai loại liên kết, tham gia bên trong và bên ngoài.
Cú pháp tham gia SQL INNER:
CHỌN cột_name (s)
TỪ bảng1
THAM GIA THAM GIA bảng2
TRÊN bảng1.column_name = table2.column_name;
Từ khóa INNER THAM GIA chọn tất cả các hàng từ cả hai bảng miễn là có sự trùng khớp giữa các cột trong cả hai bảng.
Các phép nối bên trong phụ thuộc vào việc lựa chọn các đặc điểm và thiết kế cơ sở dữ liệu. Theo đó, các phép nối bên trong này được sử dụng trong Equi-Joins và Natural Joins. Trong Equi Join, có một loại so sánh cụ thể được sử dụng để cân bằng hai bảng đã cho. Do đó, bảng này sử dụng vị ngữ bằng nhau. Tham gia tự nhiên là một loại tham gia Equi.
Cú pháp cho Equi Tham gia như sau:
S BẦU *
TỪ bảng1, bảng 2
WHERE bảng1.coloumn_name = table2.coloumn_name;
Nếu các cột trong một đẳng thức có cùng tên, thì phiên bản SQL tương ứng cung cấp một ký hiệu viết tắt tùy chọn có thể được biểu thị bằng cấu trúc USING như:
LỰA CHỌN *
TỪ bảng1 INNER THAM GIA bảng2 SỬ DỤNG (cột_name);
Cú pháp cho tham gia tự nhiên như sau:
LỰA CHỌN *
TỪ bảng1 THAM GIA TỰ NHIÊN bảng2;
Một người tham gia bên ngoài trực tiếp, không cần các điều kiện phù hợp cho các hồ sơ. Điều kiện tham gia này duy trì tất cả các hồ sơ khác, bên cạnh các hồ sơ không khớp. Phép nối này được phân phối tiếp theo trong các điều kiện nối ngoài trái, phải và đầy đủ, được thực hiện theo các điều kiện và thuộc tính bảng mong muốn.
Bên trái tham gia
Từ khóa LEFT THAM GIA trả về tất cả các hàng từ bảng bên trái (bảng1), với các hàng khớp trong bảng bên phải (bảng2). Nó dẫn đến kết quả là NULL sống ở phía bên phải khi không có trận đấu.
Cú pháp cho Left Outer Tham gia sau:
CHỌN cột_name (s)
TỪ bảng1
TRÁI PHIẾU THAM GIA bảng2
TRÊN bảng1.column_name = table2.column_name;
Bên phải tham gia
Từ khóa RIGHT THAM GIA trả về tất cả các hàng từ bảng bên phải (bảng2), với các hàng khớp trong bảng bên trái (bảng1). Kết quả là NULL ở phía bên trái khi không có trận đấu.
Cú pháp cho Right Outer Tham gia sau:
CHỌN cột_name (s)
TỪ bảng1
RIGHT OUTER THAM GIA bảng2
TRÊN bảng1.column_name = table2.column_name;
Tham gia đầy đủ bên ngoài
Từ khóa FULL OUTER THAM GIA trả về tất cả các hàng từ bảng bên trái (bảng1) và bảng bên phải (bảng2). Từ khóa FULL OUTER THAM GIA kết hợp cả kết quả của LEFT và RIGHT tham gia.
Cú pháp cho Full Outer Join là:
CHỌN cột_name (s)
TỪ bảng1
FULL OUTER THAM GIA bảng2
TRÊN bảng1.column_name = table2.column_name;
So sánh giữa Tham gia Nội bộ và Tham gia Bên ngoài:
Tham gia nội bộ | Tham gia ngoài | |
Chức năng cơ bản | Các phép nối bên trong về cơ bản được sử dụng để tìm các hàng khớp giữa 2 bảng. | Nối ngoài giữ lại các hàng của một trong hai bảng hoặc cả hai bảng. |
Sự tồn tại của các biến phổ biến | Ở đây, biến chung phải bắt buộc ở cả hai bảng. | Ở đây, biến chỉ phụ thuộc vào bảng đầu tiên có thể có hoặc không có trong bảng thứ hai. |
Trả về | Tham gia bên trong sẽ chỉ trả về các hàng trong đó có kết quả khớp dựa trên vị từ tham gia. | Tham gia ngoài sẽ trả về tất cả các hàng cho dù chúng dựa trên khớp hoặc không khớp dựa trên vị từ nối. |
Đã từng | Nó được sử dụng để xem các bản ghi chỉ khi các bản ghi có mặt trên cả hai bảng. | Nó được sử dụng để xem tất cả các bản ghi chỉ trong một bảng. |
Áp dụng trong | Chúng được áp dụng trong: Equi-Tham gia và Tham gia tự nhiên | Chúng được áp dụng như: Bên trái tham gia Bên phải tham gia Tham gia đầy đủ bên ngoài |