Mysql Query Relations MM Table

У меня возникла небольшая проблема с запросом в MySQL. У меня есть следующие таблицы:

  • член;
  • группа;
  • member_has_group (у этого есть столбцы id_group ссылается на id группы, а id_member ссылается на идентификатор участника)

Я пытаюсь сделать запрос, который дает мне участников из выбранной группы. Вы можете мне помочь?

Я не знаком с таблицами соединений, но для поиска я решил, что это, вероятно, одно из решений.

Заранее спасибо.

Elkas

Если вы знаете идентификатор группы

select member.* from member m inner join member_has_group mg on m.id = mg.id_member where mg.id_group = [x] 

Если вы знаете только название группы

 select member.* from member m inner join member_has_group mg on m.id = mg.id_member inner join group g on g.id = mg.id_group where g.name = 'group name' 

Это треугольник в SQL:

 SELECT m.id_member, m.name FROM member AS m INNER JOIN member_has_group AS h ON (m.id_member=h.id_member) WHERE (h.id_group=@my_id_group) 

@my_id_group – это идентификатор группы, который вы должны дать.

Да, вам нужно присоединиться.

 SELECT * FROM `member` JOIN `group` ON member.id = group.id JOIN `member_has_group` ON group.id = member_has_group.id 

В зависимости от информации в ваших таблицах вообще вам может не понадобиться третья таблица. Вам нужна только таблица соединителей, с которой у вас есть отношение «многие-многие».

(Игнорируйте остальные, если вы уже знаете о нормализации базы данных)

Например, если у вас было две таблицы, авторы и книги. Авторы будут содержать такие поля, как «Имя», «Издатель», «День рождения», все, что является свойством «автора». Книги будут содержать соответствующую «книжную» информацию. Это отношения «один ко многим». Автор может быть связан (через поле, например author_id) с несколькими книгами, но в книге может быть только один автор. Здесь вам не нужна третья таблица.

Основываясь на этом, скажем, у вас была третья таблица для «Имена персонажей». Это будет список имен главных символов, используемых в любой из книг в таблице «Книги». Один из персонажей называется Джон Стил. У Джона есть целая серия книг, написанных о нем. В таблице «Книги» несколько книг могут содержать имя Джона Стил в качестве персонажа. В таблице персонажей Джон Стил мог быть указан в нескольких книгах. Это «много-ко-многим». Здесь вам нужна третья таблица. Он будет иметь только два поля. book_id и character_id , одна запись для каждой книги, в которой появляется Джон Стил.

Руководство MySql по нормализации БД