简化说明一下需求:
三个表,有个房间表,还有一个用户表 房间里面有参与者,通过一个关联表连接用户表。 (当然同一个用户可以参加多个房间)
所以可以很容易地从一个房间里获取到房间里参与的用户。
现在知道有用户 A 和用户 B。 想找到这两个用户同时参与的房间,要怎么写 SQL 语句呢?
谢谢
1
Uyuhz 2020-03-19 14:15:34 +08:00 1
SELECT room_id FROM 关系表 WHERE user_id IN (a, b) GROUP BY room_id HAVING count(room_id) > 1
试一下? |
2
CRVV 2020-03-19 14:48:02 +08:00 1
select a.user_id as a_id, b.user_id as b_id, a.room_id from 关系表 as a inner join 关系表 as b on a.room_id = b.room_id where a.user_id = 'a' and b.user_id = 'b'
|