Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Najlepszy sposób na dołączenie do tabel nadrzędnych i podrzędnych

Ponieważ rodzic może mieć wiersz podrzędny w niektórych z tych tabel, musisz użyć LEFT OUTER JOIN.

LEFT OUTER JOIN łączy dwie tabele, zwracając wszystkie wiersze tabeli LEFT, w tym przypadku A i wszystkie dopasowania z pozostałych tabel. Jeśli nie ma dopasowania, zwróci NULL w odpowiednich kolumnach tabel, w których nie było dopasowania.

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

EDYTUJ

Dodałem sposób na dodawanie podpotomków. Zamierzałem je bardziej po to, aby były oczywiste w wizualnej reprezentacji. Ale uważaj ... jeśli to prowadzi do pod-dzieci mają inne pod-dzieci itp., może twoja struktura nie jest optymalna.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL — Znajdź instrukcję, która wstawia określone wartości

  2. Korzystanie z funkcji tabeli w OBIEE RPD (warstwa fizyczna) i przekazanie do niej parametru z wiersza poleceń

  3. SQL:Czy można 'grupować według' według wyników funkcji 'podobne'?

  4. Oracle SQL CASE WHEN ORA-00932:niespójne typy danych:oczekiwany CHAR otrzymał NUMBER 00932. 00000 - niespójne typy danych:oczekiwany %s otrzymał %s

  5. Kodowanie i dekodowanie Base64 w Oracle