Tôi không chắc chắn cách mô tả cấu trúc bảng của mình, vì vậy, hy vọng điều này có ý nghĩa ...Cách thực hiện Tham gia bên ngoài trên> 2 Bàn (Oracle)
Tôi có 3 bảng trong mối quan hệ thứ bậc như A mối quan hệ một đến nhiều với B mà lần lượt có mối quan hệ một đến nhiều với C. Bí quyết là khóa ngoại trong B và C được phép là rỗng (tức là không có cha mẹ xác định). Tôi cũng có D và E không liên quan đến A, B hoặc C (trực tiếp).
Cuối cùng, tôi có F là bảng nối kết có nhiều mối quan hệ với C, D và E. Không có trường nào của nó (FK cho các bảng khác) không có giá trị.
Tôi muốn viết một câu lệnh SQL nối tất cả các bảng trong một tập kết quả. Tôi biết tôi phải sử dụng các kết nối bên ngoài bởi vì tôi muốn tất cả A được trả lại bất kể nó có con trong B hay không và B và C.
Câu hỏi Một: Tôi đã xem xét kết nối bên ngoài ANSI cú pháp (tôi đã chỉ sử dụng Oracle "(+)" trước đó) và không thể tìm thấy một ví dụ mà bên ngoài tham gia nhiều hơn 2 bảng. Ai đó có thể cung cấp/chỉ cho một ví dụ?
Câu hỏi hai: Có thể bao gồm các bản ghi từ bảng D và E dựa trên bảng kết nối F không? Nếu vậy, điều này có được thực hiện với các kết nối bên ngoài không?
Cảm ơn!
EDIT
Tất nhiên, ngay sau khi tôi đăng bài này, tôi tìm thấy một ví dụ mà trả lời câu hỏi 1. Tuy nhiên, câu hỏi 2 vẫn cho tôi bối rối.
Ví dụ:
SELECT A.a,
B.b,
C.c
FROM A
FULL OUTER JOIN B ON B.a = A.a
FULL OUTER JOIN C ON C.b = B.b
Bạn có thể không muốn FULL OUTER JOIN; nó tồn tại, nhưng nó rất hiếm khi được sử dụng (hoặc hữu ích). –
Bạn chưa chỉ định các cột nào trong F tham gia với mỗi bảng khác - điều đó có nghĩa là không ai có thể đưa ra câu trả lời dứt khoát. –
Bạn có thể đăng một số dữ liệu mẫu và recordset mà bạn muốn nhận không? A's, B's C's không phải là những cái tên rất thông tin. – Quassnoi