@dGololobov
начинающий

Как составить запрос в mysql?

У меня есть таблица событий, есть несколько дополнительных таблиц. Но для упрощения пусть будет так:
Есть таблица событий events:
event_id, title, date_start, date_end ...

Есть таблица уровней доступа access_levels:
access_id, title

Есть таблица связи события и уровней доступа events_access (многие ко многим):
event_id, access_id

К некоторым событиям может быть не привязан ни один из уровней доступа.
Мне нужно взять данные из таблицы events с джоином. Сейчас я делаю такой запрос:
select e.*, group_concat(ea.access_id) as access from events e inner join events_access ea on (ea.event_id = e.event_id) group by e.event_id;


Суть в том, что в выборку не попадают те события у которых вообще нет связи с уровнями доступа, а мне нужно, чтобы они туда попали. Как этого добиться?
  • Вопрос задан
  • 39 просмотров
Решения вопроса 1
@UndineS
используйте LEFT JOIN - он позволит взять из левой таблицы все записи, а из правой - только те, для которых нашлись подходящие в левой. Т.е. у Вас получается в выборке все записи из EVENTS, из которых у части записей в столбце "access" будет стоять NULL.

объяснение различий join с картинками: www.skillz.ru/dev/php/article-Obyasnenie_SQL_obedi...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы