【发布时间】:2022-01-20 00:28:44
【问题描述】:
假设我有以下简单布局(这是我所拥有的简化版本,实际上我正在使用 TypeORM 来实现这一点);
user(id, name)
game(id, name)
players(id, userId, gameId)
现在我想检索用户参与的所有games 和players。
以下查询将获取游戏中的所有玩家;
SELECT g.id, p.* FROM games g JOIN players p ON g.id = p.gameId
现在我想通过仅选择特定用户参与的所有games 和players 来过滤它。我所做的是以下内容;
SELECT g.id, p.* FROM games g JOIN players p ON g.id = p.gameId WHERE p.userId = :userId
现在这显然返回了播放器的所有行。但是我怎么也能得到:userId参与的其他玩家呢?这似乎是一件很容易的事情,但我无法真正理解它。
【问题讨论】: