Oracle
 sql >> база данни >  >> RDS >> Oracle

Най-добрият начин за свързване на родителски и дъщерни таблици

Тъй като родителят може да има дъщерен ред в някои от тези таблици, трябва да използвате LEFT OUTER JOIN.

LEFT OUTER JOIN обединява две таблици, връщайки всички редове от ЛЯВАТА таблица, в този случай A и всички съвпадения от другите таблици. Когато няма съвпадение, ще върне NULL в съответните колони на таблиците, че няма съвпадение.

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

РЕДАКТИРАНЕ

Добавих начин за добавяне на поддети. Предназначих ги по-скоро, за да ги направя очевидни във визуално представяне. Но внимавайте...ако това води до поддеци, имайте други поддеци и т.н. може би вашата структура не е оптимална.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Забранена връзка Oracle academy

  2. Как да напишете .Net приложение, което работи както с SqlServer, така и с Oracle (сега, когато System.Data.OracleClient е отхвърлен)

  3. Времево клеймо на Oracle към sql сървър DateTime

  4. Oracle SQL GROUP BY не е помощен израз за GROUP BY

  5. Параметър за изчакване на IDLE в Oracle