Как написать оператор SQL, который получает результаты через таблицу отношений? (много ко многим) - PullRequest
1 голос
/ 16 октября 2008

У меня 3 таблицы (в архиве много разделов, раздел (может) принадлежат многим архивам):

  • archive

    • id PK
    • description
  • archive_to_section

    • archive_id PK FK
    • section_id PK FK
  • section

    • id PK
    • description

Как будет выглядеть 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

Ответы [ 2 ]

3 голосов
/ 16 октября 2008
SELECT s.* 
FROM section s INNER JOIN archive_to_section ats ON s.id = ats.section_id 
WHERE ats.archive_id = 1
3 голосов
/ 16 октября 2008
SELECT s.*
FROM archive_to_section ats
  INNER JOIN section s ON s.id=ats.section_id
WHERE ats.archive_id= @archiveID
...