3 つのテーブルがあるとします。
プロジェクト ---------- プロジェクト ID PK
サブプロジェクト ---------- プロジェクト ID PK subProjectId PK
基本的に、すべてのプロジェクトが Projects テーブルに一覧表示されます。プロジェクトはサブプロジェクトを持つことができます。たとえば、テーブルに次の行があるとします。
プロジェクト ---------- 1 2 3
サブプロジェクト ---------- 1,2 1,3
プロジェクト 1、2、3 の 3 つのプロジェクトがあります。プロジェクト 2 と 3 は、プロジェクト 1 のサブプロジェクトです。
2 つの質問があります。まず、外部キーは、サブプロジェクト内の projectId および subProjectId を参照するプロジェクト内の projectId にするか、プロジェクト内の projectId を参照するサブプロジェクト内の projectId およびプロジェクト内の projectId を参照するサブプロジェクト内の subProjectId にする必要があります。
プロジェクトは、複数のプロジェクトのサブプロジェクトになることができることに注意してください。
次に、クエリを使用してプロジェクトのサブ プロジェクトを取得するにはどうすればよいですか。私は使用しています:
Select * from projects p1 Join subProjects sp Join projects p2
where p1.projectId = sp.subProjectId and sp.subProjectId = p2.projectId;
次の結果が得られます。
1、2 1 , 3
ただ戻ってきてほしい
2 3