Mysql - мульти выбор с одним запросом - PullRequest
1 голос
/ 24 сентября 2019

У меня есть таблица, которая содержит события.Внешний интерфейс отображает все события в виде карточек.Одно событие, одна карта.У меня также есть таблица с подписками.Одно событие, много подписок.

Есть ли способ получить все события со всеми их подписками одним запросом?

В настоящее время я делаю запрос, чтобы получить все события, затем запускаю цикл и запускаю запрос для каждого события, чтобы получить его подписки.Таким образом, по мере увеличения количества событий увеличивается количество подзапросов (и соединений дБ).Вот почему я хотел бы знать, возможно ли свести это к одному запросу.

event                     subscription
+----------+              +------------+
id                        id
name                      user
location                  age
date                      event_id

... ...

ПЫТАЕТСЯ СДЕЛАТЬ МОЙ ВОПРОС ЛЕГКО: P

Чтобы упростить это, подумайте о посте в Facebook.Facebook показывает пост и всех пользователей, которые понравились, верно?Итак, есть ли способ объединить все сообщения и имена пользователей, которым понравилась каждая публикация, в один запрос?

1 Ответ

2 голосов
/ 24 сентября 2019

Кажется, вы ищете простое JOIN.Предполагая, что столбец event_id в таблице subscription отображается на id из event, он будет выглядеть следующим образом:

SELECT e.id, e.name, e.location, e.date, s.id, s.user, s.age
FROM event e
INNER JOIN subscription s ON s.event_id = e.id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...