Выборка по двум условиям из связнной таблицы

Рейтинг: 0Ответов: 1Опубликовано: 09.11.2014

Всем привет. Мучаюсь второй день.

Предположим, есть таблица пользователей с полями id и name (ид - уникальный), и есть связанная таблица, связывающая этих пользователей с группами. В этой таблице поля user_id и group_id. Нужно одним запросом получить пользователей, находящихся одновременно и в группе 6, и в группе 12.

Вроде звучит просто, но что-то ничего не получается. :( Смог только получить всех пользователей, которые находятся в группе 6, и всех, кто в группе 12, а потом фильтровать лишних уже кодом, но в виду очень большого количества данных - выборка занимает 7 секунд, что крайне неприлично долго... Буду благодарен за любые идеи...

Ответы

▲ 1
SELECT u.id, u.name FROM users AS u
INNER JOIN relations AS r1 ON r1.user_id = u.id AND r1.group_id = 6
INNER JOIN relations AS r2 ON r2.user_id = u.id AND r2.group_id = 12