イブニング・オール、
私はしばらくこれに取り組んできましたが、何らかの理由で、ロジックを期待どおりに返すことができないようです。
3 つのデータ テーブルと 3 つのビジネス コンセプト リンク テーブルがあります。
- 表1
- 表2
- 表3
ルール:
- 表 1 は表 2 にリンクできます
- 表 1 は表 3 に直接リンクできます
- 表 1 は、表 2 を介して表 3 に間接的にリンクできます。
かなりの数のバリエーションを試しましたが、レコードが切り捨てられているようです。
SELECT
*
FROM
Table1 T1
INNER JOIN Table1_to_Table2_Link L1 on L1.T1_ID = T1.ID
RIGHT JOIN TABLE2 T2 ON L1.T2_ID = T2.ID
INNER JOIN Table2_to_Table3_Link L2 ON L2.T2_ID = T2.ID
Right JOIN Table3 T3 ON L2.T3_ID = T3.ID
INNER JOIN Table1_to_Table3_Link L3 on T1.ID = L3.T1_ID
説明するのは少し厄介ですが、要約すると、テーブル 1 のすべてのデータと、テーブル 1 に直接/間接的に関連している場合は、テーブル 2 と 3 のデータのみが必要です。テーブル 2 と 3 は必ずしも関連している必要はありません。ビジネス コンセプトです。