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

У меня есть 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
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
0
2 504
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

Точно. Важно понимать, что архивная таблица здесь не фигурирует.

James Curran 16.10.2008 18:55

Я думаю, вы имеете в виду раздел INNER JOIN на s.id = ats.section_id

Greg Dean 16.10.2008 18:56

что означают символы * и @?

meleyal 16.10.2008 18:57

* означает все поля для этой таблицы, @archiveID - это параметр, вы можете заменить его на archive_id по вашему выбору, если хотите.

Greg Dean 16.10.2008 18:58
Ответ принят как подходящий

SELECT s.* 
FROM section s INNER JOIN archive_to_section ats ON s.id = ats.section_id 
WHERE ats.archive_id = 1

нужно писать с сокращениями? новичку может быть проще следовать ему. Благодарность

meleyal 16.10.2008 18:58

Аббревиатуры (псевдонимы) использовать не обязательно, многие люди их используют. Я предпочитаю этого не делать. См. Обсуждение плюсов и минусов псевдонима stackoverflow.com/questions/198196/when-to-use-sql-table-ali‌ как

Nathan Koop 16.10.2008 19:15

Другие вопросы по теме