2008-10-16 77 views
1

我有3个表(档案有许多节,节(5月)属于许多档案):如何编写通过关系表获取结果的SQL语句? (多对多)

  • archive

    • id PK
    • description
  • archive_to_section

    • archive_id PK FK
    • section_id PK FK
  • section

    • id PK
    • description

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 

回答

3
SELECT s.* 
FROM section s INNER JOIN archive_to_section ats ON s.id = ats.section_id 
WHERE ats.archive_id = 1 
3
SELECT s.* 
FROM archive_to_section ats 
    INNER JOIN section s ON s.id=ats.section_id 
WHERE ats.archive_id= @archiveID 
+0

没错。要认识到的重要一点是归档表不会考虑到这一点。 – 2008-10-16 14:55:03

+0

3秒打我! – 2008-10-16 14:55:42