andreys75
@andreys75

Как написать оптимальный SQL запрос с вычисляемым полем?

Добрый день, пожалуйста помогите написать оптимальный SQL запрос
есть три таблицы:
  1. События
  2. Участники
  3. Пользователи



Соотвественно, пользователь регистрируясь на событие становиться участником. Таблица Участники реализует отношение многие ко многим между Событиями и Пользователями.

Ноужно, по заданному ID пользователя сделать выборку всех событий и добавить вычисляемое поле типа boolen - является ли данный пользователь участником события.

Хочется сделать это одним запросом, и максимально бысто
  • Вопрос задан
  • 95 просмотров
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
Вопросы оптимизации запросов не имеют смысла без указания используемой СУБД.

select ..., p.event_id is not null from events as e left join participations as p on p.user_id = ? and e.id = p.event_id

либо
select ..., exists(select null from participations as p on p.user_id = ? and e.id = p.event_id) from events as e
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
tsklab
@tsklab
Здесь отвечаю на вопросы.
Ноужно
Нет. Достаточно определить есть "ID пользователя" в "Участники", подзапросом, например.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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