Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Cách tốt nhất để tham gia bảng cha và con

Vì cha mẹ có thể có một hàng con trong một số bảng đó, bạn phải sử dụng LEFT OUTER JOIN.

LEFT OUTER JOIN kết hợp hai bảng trả về tất cả các hàng của bảng LEFT, trong trường hợp này là A và tất cả các kết quả phù hợp từ các bảng khác. Khi không có kết quả phù hợp, nó sẽ trả về NULL trong các cột tương ứng của bảng mà không có kết quả phù hợp nào.

SELECT *
FROM A
LEFT OUTER JOIN B
    ON A.Id = B.ParentID
LEFT OUTER JOIN C
    ON A.Id = C.ParentID
    LEFT OUTER JOIN P
        ON C.Id = P.ParentID
    LEFT OUTER JOIN Q
        ON C.Id = Q.ParentID
LEFT OUTER JOIN D
    ON A.Id = D.ParentID
LEFT OUTER JOIN E
    ON A.Id = E.ParentID
LEFT OUTER JOIN F
    ON A.Id = F.ParentID
    LEFT OUTER JOIN X
        ON F.Id = X.ParentID
    LEFT OUTER JOIN Y
        ON F.Id = Y.ParentID
LEFT OUTER JOIN G
    ON A.Id = G.ParentID

CHỈNH SỬA

Tôi đã thêm một cách để thêm con cái. Tôi đã dự định chúng nhiều hơn chỉ để làm cho chúng rõ ràng trong một hình ảnh đại diện. Nhưng hãy cẩn thận ... nếu điều này dẫn đến những đứa trẻ con có những đứa con khác, v.v. có thể cấu trúc của bạn không tối ưu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để sử dụng enums trong Oracle?

  2. sử dụng LIKE và IN với truy vấn con trong sql

  3. chạy một tệp exe trong trình kích hoạt oracle

  4. Khóa Oracle bằng SELECT ... FOR UPDATE OF

  5. DBMS_JOB so với DBMS_SCHEDULER