【发布时间】:2011-03-07 13:58:15
【问题描述】:
我有一个 Person 表、Group 表和 Group_Person 表,其中许多人员实体可以有许多组实体。 Group_Person 作为中间表,有一个元组 (group_id, person_id) 映射到 Group 表的 group_id 和 Person 表的 person_id。
给定来自 Person 表的 0 个或多个 person_id(从 Person 表中查询),我想从 Group 表中找到所有 Groups,在 Group_Person 表中,每个 person_id 都有一个元组 (group_id, person_id)。换句话说,每个 person_ids 都映射到一个公共 group_id。
由于 MySQL 没有 INTERSECT 函数,我正在考虑执行以下查询(仅返回 group_id):
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_id。这是最好的解决方案吗?
【问题讨论】:
标签: mysql