Aangezien een bovenliggende rij in sommige van die tabellen een onderliggende rij kan hebben, moet u LEFT OUTER JOIN gebruiken.
LEFT OUTER JOIN voegt twee tabellen samen en retourneert alle rijen van de LEFT-tabel, in dit geval A en alle overeenkomsten van de andere tabellen. Als er geen overeenkomst is, wordt NULL geretourneerd in de overeenkomstige kolommen van de tabellen dat er geen overeenkomst was.
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
BEWERKEN
Ik heb een manier toegevoegd om subchilden toe te voegen. Ik heb ze meer bedoeld om ze duidelijk te maken in een visuele weergave. Maar pas op... als dit ertoe leidt dat onderkinderen andere onderkinderen hebben enz., is uw structuur misschien niet optimaal.