Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Помогите составить запрос (Лена) 04/02/2016 - 16:47:44
      Re: Помогите составить запрос (Akina) 04/02/2016 - 18:07:09
      Re: Помогите составить запрос (Лена) 05/02/2016 - 12:50:23
      Re: Помогите составить запрос (Akina) 05/02/2016 - 16:56:07
      Re: Помогите составить запрос (Лена) 05/02/2016 - 23:35:24
      Re: Помогите составить запрос (Евгений) 25/06/2016 - 22:09:39

> Original message text:
> From: Лена - 04/02/2016 - 16:47:44
> Subject:Помогите составить запрос
> -----------------
> Здравствуйте, помоги, пожалуйста, советом.
>
> У меня есть 2 таблицы. Одна таблица Групп (group_id, title, users_count) и таблица Группа-Пользователь (id, group_id, user_id).
> Задача следующая: нужно выбрать группу (group_id), в которой состоит 3 юзеров с айдишками, например, 1, 2 и 3.
>
> Пока что я решила проблему таким образом, что сначала отдельным запросом выбираю из таблицы Групп все группы, у которых users_count = 3. Потом в цикле для каждой группы по group_id выбираю из таблицы Группа-Пользователь все user_id и сравниваю полученный результат с требуемым (1,2,3). Но это все очень топорно... Подскажите пожалуйста, как составить квери, чтобы выборка производилась за 1 запрос, а не за 2+.
>
> Честно говоря, я не знаю даже как составить вопрос, чтобы воспользоваться поиском...
>


From: Akina - 05/02/2016 - 16:56:07
Subject:Помогите составить запрос
-----------------
SELECT group_id
FROM users_in_groups
GROUP BY group_id
HAVING COUNT(user_id) = SUM(user_id IN ({список ID участников}))
AND COUNT(DISTINCT user_id) = {количество уникальных ID в списке участников}

Запрос к тому же нечувствителен к дубликатам в таблице.


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
43593



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |