sql >> Databáze >  >> RDS >> Oracle

Nejlepší způsob, jak spojit nadřazené a podřízené tabulky

Vzhledem k tomu, že rodič může mít v některých z těchto tabulek podřízený řádek, musíte použít LEFT OUTER JOIN.

LEFT OUTER JOIN spojuje dva stoly a vrací všechny řádky tabulky LEFT, v tomto případě A a všechny shody z ostatních stolů. Pokud není nalezena žádná shoda, vrátí hodnotu NULL v odpovídajících sloupcích tabulek, u kterých nedošlo k žádné shodě.

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

UPRAVIT

Přidal jsem způsob, jak přidat podřízené děti. Zamýšlel jsem je spíše proto, aby byly zřejmé ve vizuální reprezentaci. Ale pozor...pokud to vede k tomu, že podděti mají další podděti atd., možná vaše struktura není optimální.



  1. ukládat arabštinu do SQL databáze

  2. Připojení k místní databázi SQL Server pomocí C#

  3. Integrace Hadoop a MySQL

  4. Datum ve formátu mmm rrrr v postgresql