Sự khác biệt giữa Tham gia trái và bên trái Tham gia Sự khác biệt giữa

Anonim

Tham gia trái và bên trái tham gia

Trong SQL, tham gia được sử dụng để kết hợp các bản ghi đến từ các bộ dữ liệu khác nhau. Tham gia có thể là một tham gia bên trong hoặc tham gia bên ngoài. Một kết nối bên trong trả về hồ sơ có các trận đấu trong cả hai bảng như trái ngược với một tham gia bên ngoài, là đối diện của bên trong. Do đó nối bên ngoài sẽ trả về những hồ sơ không có kết quả phù hợp trong cả hai bảng. Sự khác biệt giữa kết nối bên phải và nối bên trái được thảo luận dưới đây.

-1->

Sự khác nhau

Như đã nói ở trên, một tham gia bên trong sẽ chỉ tạo ra một bộ hồ sơ có trong hai bảng đang được so sánh. Mặt khác, một tham gia bên ngoài hoàn toàn là một trong đó tạo ra một tập tất cả các bản ghi có trong cả hai bảng dưới sự so sánh. Trong trường hợp không có trận đấu, các trận đấu mất tích sẽ chứa một giá trị null.

Một kết nối ngoài bên trái sẽ chứa một bộ hồ sơ đầy đủ đến từ bảng đầu tiên và kết quả phù hợp sẽ có sẵn với kết quả của nó trong bảng tương ứng. Trong trường hợp không có kết quả phù hợp, bên phải sẽ có một giá trị null. Để tạo ra các bản ghi trong bảng bên trái, chứ không phải bảng bên phải, hãy sử dụng mệnh đề 'where' đi vào chơi.

Để tạo ra các bản ghi duy nhất cho bảng bên phải và một bên trái, nên sử dụng tham gia bên ngoài đầy đủ. Sau khi thực hiện kết nối bên ngoài đầy đủ, mệnh đề "ở đâu" được sử dụng để loại trừ các kết quả không mong muốn từ "bên phải" và "bên trái". Hơn nữa, một Cartesian tham gia có thể được sử dụng để giúp tham gia tất cả mọi thứ trái và phải. Điều này đôi khi không phải là những gì đang được tìm kiếm, nhưng đôi khi nó xuất hiện. Các tập hợp dữ liệu tạo ra tập dữ liệu mạnh mẽ cho phép có tới 16 dãy bộ dữ liệu, thường nhiều hơn dự kiến. Mặc dù bạn có một lượng dữ liệu khổng lồ, các kết nối này cực kỳ nguy hiểm vì một sự không tương thích nhỏ có thể làm tê liệt toàn bộ hệ thống.

Nếu bạn đang làm việc với một dự án mà cũng tìm kiếm sự tương thích của máy chủ Microsoft SQL, thì sẽ có lợi ích thu được từ việc sử dụng kết nối bên ngoài trái. Các chuỗi trả lại bắt đầu với các hồ sơ nội bộ đang được trả về đầu tiên, tiếp theo là quyền tham gia các hồ sơ và cuối cùng là một phần của các hồ sơ trái. Việc sử dụng câu lệnh join bên trái hoặc outer join bên trong môi trường SQL sẽ tham chiếu đến cùng một câu lệnh. Điều này về bản chất có nghĩa là không có sự khác biệt như về kết quả mong đợi cho dù một hiệp bên trái được sử dụng hay một kết nối bên ngoài trái được sử dụng. Kết quả sẽ tương tự, trừ khi môi trường nằm trong máy chủ Microsoft SQL. Từ khóa bên ngoài có thể được sử dụng hoặc thậm chí bỏ qua mà không lo lắng vì kết quả không khác nhau dưới bất kỳ hình thức nào.

Kết nối

Các liên kết được sử dụng trong SQL để so sánh các bộ dữ liệu khác nhau

Một kết nối bên trong chỉ tạo ra một tập hợp các bản ghi có trong hai bảng đang được so sánh

Một tham gia bên ngoài tạo ra bộ hoàn chỉnh của tất cả các bản ghi hiện diện trong cả hai bảng nghiên cứu

Một mệnh đề 'where' được sử dụng để tạo ra các bản ghi duy nhất sau khi sử dụng một tham gia đầy đủ

Một Cartesian kết nối các yếu tố trái và phải của một bảng.

Có một sự khác biệt đáng chú ý khi gia nhập trái và kết nối ngoài bên trái được sử dụng khi sử dụng máy chủ Microsoft SQL

Tất cả trong tất cả, sử dụng câu lệnh kết nối trái hoặc kết nối bên trái trái nghĩa với cùng một câu lệnh. Vì không có sự khác biệt, nên sử dụng kết nối ngoài bên trái được khuyến khích.