SQL 语句求助,如果通过关联子表找到父表?

2020-03-19 14:02:34 +08:00
 Hanggi

简化说明一下需求:

三个表,有个房间表,还有一个用户表 房间里面有参与者,通过一个关联表连接用户表。 (当然同一个用户可以参加多个房间)

所以可以很容易地从一个房间里获取到房间里参与的用户。

现在知道有用户 A 和用户 B。 想找到这两个用户同时参与的房间,要怎么写 SQL 语句呢?

谢谢

1425 次点击
所在节点    程序员
3 条回复
Uyuhz
2020-03-19 14:15:34 +08:00
SELECT room_id FROM 关系表 WHERE user_id IN (a, b) GROUP BY room_id HAVING count(room_id) > 1
试一下?
CRVV
2020-03-19 14:48:02 +08:00
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'
Hanggi
2020-03-19 15:20:24 +08:00
@Uyuhz
@CRVV
都试过了,结果是正确的。
感谢🙏🙏🙏

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/654229

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX