3

给定一个用于和之间的 m-2-m 关系的连接boothuser

+-----------+------------------+
| booth_id  |          user_id |
+-----------+------------------+
|         1 |                1 |
|         1 |                2 |
|         1 |                5 |
|         1 |                9 |
|         2 |                1 |
|         2 |                2 |
|         2 |                5 |
|         2 |               10 |
|         3 |                1 |
|         3 |                2 |
|         3 |                3 |
|         3 |                4 |
|         3 |                6 |
|         3 |               11 |
+-----------+------------------+

如何获得一组不同booth的用户 ID 子集之间共有的记录?例如,如果给我的user_id1,2,3,我希望结果集只booth包含 id3因为它是booth上面连接表中所有user_id提供的唯一共同点。

我希望我在 MySQL 中缺少一个关键字来实现这一点。到目前为止我最远的是 using... user_id = all (1,2,3)但这总是返回一个空的结果集(我相信我明白为什么会这样)

4

1 回答 1

1

对此的 SQL 查询将是:

select booth_id from table1 where [user_id]
in (1,2,3) group by booth_id having count(booth_id) = 
(select count(distinct([user_id])) from table1 where [user_id] in (1,2,3))

如果这可以帮助您创建 MySQL 查询。

于 2012-10-05T13:34:41.643 回答