У меня есть таблица Person, таблица Group и таблица Group_Person, где у многих объектов лиц может быть много объектов группы. Group_Person действует как промежуточная таблица и имеет кортеж (group_id, person_id), который сопоставляется с group_id из таблицы Group и person_id из таблицы Person.
Учитывая 0 или более person_id из таблицы Person (которая запрашивается из таблицы Person), я хочу найти все группы из таблицы Group, где в таблице Group_Person есть кортеж (group_id, person_id) для каждого person_id. Другими словами, каждый person_ids отображается на общий group_id.
Поскольку в MySQL нет функции INTERSECT, я подумал сделать следующий запрос (он возвращает только идентификатор_группы):
SELECT t1.group_id
FROM Group_Person AS t1
JOIN Group_Person AS t2 ON t1.group_id = t2.group_id
WHERE t1.person_id = xxx AND t2.person_id = yyy;
Опять же, здесь может быть 0 или более person_ids. Это лучшее решение?