SQL 多对多从一个 table 获取全部

SQL many-to-many get all from a table

我有三个表:

  1. 用户
id some_user_data some_more_user_data
1 ... ...
2 ... ...
3 ... ...
  1. 教室
id some_classroom_data some_more_classroom_data
1 ... ...
2 ... ...
3 ... ...
  1. classroom_users
id user_id classroom_id
1 1 1
2 1 3
3 2 1
4 3 1
5 3 2

我需要一个查询,给定一个 user_id,可以获取特定用户所在的所有教室的所有数据。因此,如果我 运行 上面给出的表的查询user_id 的 1,我想得到以下结果:

id some_classroom_data some_more_classroom_data
1 ... ...
3 ... ...

在此先感谢您的帮助。我一直在努力思考这个 SQL 查询太久了。

仅供参考,我正在使用 Postgres。

这应该有帮助

select c.* from classroom_users cu, classrooms c
where cu.user_id = <input user id> and cu.classroom_id = c.id;