Из-за моего слабого словарного запаса я не уверен, что название моего вопроса правильное, но я пытаюсь объяснить свои потребности как можно подробнее.Спасибо, что прошли.
У меня есть таблица, предназначенная для хранения участников мероприятия.Диаграмма ниже.
event_id | user_id
---------|---------------------
1 | 23
1 | 32
3 | 23
3 | 32
3 | 67
Я хочу получить event_id
, основываясь на предоставленных значениях user_id
, но так, чтобы я показывал только тот event_id
, который предоставил исключительно пользователям.
Например, основываясь на приведенной выше диаграмме таблицы, если я даю только пользовательские значения = (23, 32), мне нужно получить только событие 1, а не 1 и 3, даже если событие 3 также имеет вышеуказанных пользователей.Я пытаюсь получить события, предназначенные только для определенных пользователей.
Вот моя реализация laravel:
DB::table('events_users')->whereIn('user_id', [23, 32])
->get();
Это выбирает все события, которые имеют выше пользователей, но я хочу единственное событие с идентификатором 1на основе приведенной выше диаграммы.Мое текущее решение - написать еще один слой кода после выборки, где я сопоставляю количество пользователей в каждом событии из результата запроса с требуемым количеством.Например, если я ищу эксклюзивное событие только для 2 пользователей, тогда я отфильтрую события из результата по количеству пользователей в этом событии.Извините за слабый словарный запас, но я изо всех сил пытаюсь объяснить.
Есть ли способ достичь того, что я хочу, с помощью одного запроса?