Php 基于其他两个SQL中的数据从表中选择数据

Php 基于其他两个SQL中的数据从表中选择数据,php,mysql,sql,Php,Mysql,Sql,我有3张桌子:用户、游戏和玩家。为了简单起见,我会说这些表如下所示: 用户 id int AUTO_INCREMENT, PRIMARY KEY (id) id int AUTO_INCREMENT, PRIMARY KEY (id) game_id int, user_id int, FOREIGN KEY (game_id) REFERENCES (games.id), FOREIGN KEY (user_id) REFERENCES (users.id) 游戏 id int AUTO

我有3张桌子:用户、游戏和玩家。为了简单起见,我会说这些表如下所示:

用户

id int AUTO_INCREMENT,
PRIMARY KEY (id)
id int AUTO_INCREMENT,
PRIMARY KEY (id)
game_id int,
user_id int,
FOREIGN KEY (game_id) REFERENCES (games.id),
FOREIGN KEY (user_id) REFERENCES (users.id)
游戏

id int AUTO_INCREMENT,
PRIMARY KEY (id)
id int AUTO_INCREMENT,
PRIMARY KEY (id)
game_id int,
user_id int,
FOREIGN KEY (game_id) REFERENCES (games.id),
FOREIGN KEY (user_id) REFERENCES (users.id)
玩家

id int AUTO_INCREMENT,
PRIMARY KEY (id)
id int AUTO_INCREMENT,
PRIMARY KEY (id)
game_id int,
user_id int,
FOREIGN KEY (game_id) REFERENCES (games.id),
FOREIGN KEY (user_id) REFERENCES (users.id)
我需要选择
users.id
其中
players.game\u id
为1

到目前为止我已经试过了

SELECT users.id FROM users, game_users WHERE players.id = 1

还有一些
选择带有
内部连接的
语句,但是没有用。

如果只需要
用户id
就不需要
连接

SELECT user_id 
FROM players
WHERE game_id =1
现在,如果您需要这些名称,一个
JOIN
就可以了

SELECT users.name
FROM players
JOIN users
  ON player.user_id = users.id
WHERE game_id =1

您必须具有加入密钥才能加入用户和游戏。作为

...WHERE game_users.id = 1 AND users.id=game_users.id
你没有一张叫做game_users的表格


有人会认为这不仅仅是一个简单的选择。我想说的是,他们想知道这样一个玩家的名字,以及其他一些游戏信息。@FirstOne我也这么认为。但我首先回答了这个问题,然后添加了一些额外的知识;)是的,但我是说。。。标题。。。这个答案的第一个问题可能不是它。总之…@FirstOne你是对的,OP需要改进他的问题。我试图回答得太快了。游戏用户在哪里?@JeroenHeier问错了名字!现在修复了
players
表中没有
id
字段的问题,我想我回答得太快了。你似乎还没有提出正确的问题。向我们显示数据库模式、示例数据、当前和预期输出。请阅读,这里是一个学习如何提高问题质量和获得更好答案的好地方。使用WHERE从两个表中选择数据确实有效,但最好使用一种
join
类型,例如
internal join
来分离实际
WHERE
条件的连接条件。它使查询更清晰,并防止在多个条件下出现错误。请参阅我在主要帖子上的评论。我的意思是
玩家
而不是
游戏用户
你可以随时用下面的文字回答。