Mysql многие ко многим выбирают с переполнением стека

У меня есть поиск, но я не решаю свои проблемы.
У меня много-много отношений.

3 таблицы:

groups_mail | groups_mail_j (joint table) | mails
id, name    | mail_id, groupe_id          | id, name

Я не знаю, как выбрать все электронные письма для моего идентификатора группы = 1

Спасибо.

-3

Решение

Ваш вопрос не ясен. В любом случае это то, что я понял, основываясь на этом вопросе.

У вас есть 3 таблицы почты, groups_mail, groups_mail_j

Вы хотите объединить все таблицы и получить все записи на основе столбца mails> id.

Если выше требуется, чем вы можете сделать это следующим

SELECT m.id mailid, m.name AS email, gm.name AS groupname, gm.id AS groupmailid
FROM mails AS m
INNER JOIN groups_mail_j AS gmj ON gmj.mail_id = m.id
INNER JOIN groups_mail AS gm ON gm.id = gmj.groupe_id
WHERE m.id = 1

Здесь я использовал пользовательские селекторы. Вы можете использовать любой селектор, то есть определенный столбец таблиц, используя псевдоним этой таблицы.

Хорошо, если вы хотите показать все почтовые идентификаторы для выбранной группы, используйте следующий запрос. Не нужно указывать mail_id, потому что если вы знаете почтовый идентификатор, вам больше не придется делать запрос.

SELECT m.name AS email
FROM mails AS m
INNER JOIN groups_mail_j AS gmj ON gmj.mail_id = m.id
INNER JOIN groups_mail AS gm ON gm.id = gmj.groupe_id
WHERE gmj.groupe_id = 1

Здесь 1 в жестком коде на случай, если вы можете использовать $ group_id

Пожалуйста, проверьте правильность написания group_id или же groupe_id

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector