リレーションシップテーブルを介して結果を取得するSQLステートメントを記述する方法(多対多)

StackOverflow https://stackoverflow.com/questions/208874

  •  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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top