THAM GIA so với INNER THAM GIA và FULL OUTER THAM GIA


27

Tôi biết có một sự khác biệt giữa INNER JOINFULL OUTER JOIN, tôi có thể nhìn thấy nó, nhưng, sự khác biệt giữa hai sau là gì: JOIN ... ON...INNER JOIN...ON...và vẫn chưa JOIN...ON...vsFULL OUTER JOIN...ON...

Lý do là tôi nghĩ có lẽ chỉ cần sử dụng JOINlà làm rối tung một truy vấn tôi đang làm việc được đăng trên SO, liên kết đến câu hỏi TẠI ĐÂY.

Vì vậy, về cơ bản sự khác biệt cú pháp giữa các hoạt động thiết lập thực tế là gì?

Cảm ơn bạn,


1
"Đăng chéo" là đăng cùng một câu hỏi trong các diễn đàn khác nhau. Đăng một liên kết là ok và mong muốn.
choroba

Ok, tôi sẽ đăng một liên kết đến câu hỏi, mã của tôi sẽ trả lại nhiều bản sao và nó khiến tôi phát điên ... Tôi thậm chí còn chưa uống cà phê buổi sáng của mình lol
MCP_infiltrator

4
@MCP_infiltrator hãy nhìn vào có lẽ là lời giải thích tốt nhất trên mạng: codinghorror.com/blog/2007/10/...
MKK

Nếu vấn đề thực sự là mã của bạn đang trả về quá nhiều bản sao, bạn có thể muốn hỏi một câu hỏi khác trong đó đây là điểm chính. Và bạn có thể muốn gửi mã của bạn. Khi tôi đã giúp những người gặp vấn đề trùng lặp trong quá khứ, thường là do điều kiện tham gia sai hoặc đôi khi do ánh xạ kém giữa mô hình dữ liệu SQL và mô hình dữ liệu quan hệ.
Walter Mitty

Xin chào @WalterMitty câu hỏi được đăng trong SO, tôi nghĩ rằng sự tham gia của tôi là vấn đề, nhưng một lưu ý khác tôi cũng chỉ tò mò, tôi chỉ mới viết 6 tháng để viết SQL và tự dạy, liên kết nằm trong câu hỏi.
MCP_infiltrator

Câu trả lời:


33

JOININNER JOINgiống nhau, từ khóa bên trong là tùy chọn vì tất cả các phép nối được coi là phép nối bên trong trừ khi có quy định khác. Sự khác biệt giữa JOINFULL OUTER JOINgiống như sự khác biệt giữa INNER JOINFULL OUTER JOIN.

An INNER JOINsẽ chỉ trả về các hàng khớp nếu một hàng trong bảng A khớp với nhiều hàng trong bảng B, bảng A sẽ được lặp lại với mỗi hàng B của bảng và ngược lại.

A FULL OUTER JOINsẽ trả về mọi thứ mà phép nối bên trong thực hiện trả về tất cả các hàng chưa từng có từ mỗi bảng.


5
Cảm ơn bạn, tôi đã không biết điều đó JOININNER JOINlà những tuyên bố tương đương.
MCP_infiltrator

7
Thực hành tốt nhất là viết rõ ràng THAM GIA để tránh nhầm lẫn.
Neil
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.