代码之家  ›  专栏  ›  技术社区  ›  meleyal

如何编写通过关系表获取结果的SQL语句?(多对多)

  •  1
  • meleyal  · 技术社区  · 16 年前

    我有3个表格(档案有很多部分,部分(可能)属于许多档案):

    • archive

      • id PK
      • description
    • archive_to_section

      • archive_id PK FK
      • section_id PK FK
    • section

      • ID-PK
      • 描述

    SQL将如何列出属于某个存档ID的所有部分?

    我只是在学习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
    
    2 回复  |  直到 15 年前
        1
  •  3
  •   Greg Dean    16 年前
    SELECT s.* 
    FROM section s INNER JOIN archive_to_section ats ON s.id = ats.section_id 
    WHERE ats.archive_id = 1
    
        2
  •  3
  •   Joel Coehoorn    16 年前
    SELECT s.*
    FROM archive_to_section ats
      INNER JOIN section s ON s.id=ats.section_id
    WHERE ats.archive_id= @archiveID