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.