リレーションシップテーブルを介して結果を取得するSQLステートメントを記述する方法(多対多)
-
03-07-2019 - |
質問
3つのテーブルがあります(アーカイブには多くのセクションがあり、セクション(多くの場合)は多くのアーカイブに属します):
-
アーカイブ
-
id PK
-
説明
-
-
archive_to_section
-
archive_id PK FK
-
section_id PK FK
-
-
セクション
-
id PK
-
説明
-
特定のアーカイブIDに属するすべてのセクションをリストするSQLはどのようになりますか?
SQLを学習しています。私が読んだことから、私は結合、または連合が必要になるように聞こえますか?参考までに私はpostgresを使用しています。
[編集] これはエイリアスなしで記述されたgdean2323からの回答です:
SELECT section.*
FROM section
INNER JOIN archive_to_section
ON section.id = archive_to_section.section_id
WHERE archive_to_section.archive_id = $this_archive_id
解決
SELECT s.*
FROM section s INNER JOIN archive_to_section ats ON s.id = ats.section_id
WHERE ats.archive_id = 1
他のヒント
SELECT s.*
FROM archive_to_section ats
INNER JOIN section s ON s.id=ats.section_id
WHERE ats.archive_id= @archiveID
所属していません StackOverflow