Php 基于其他两个SQL中的数据从表中选择数据
我有3张桌子:用户、游戏和玩家。为了简单起见,我会说这些表如下所示: 用户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
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
条件的连接条件。它使查询更清晰,并防止在多个条件下出现错误。请参阅我在主要帖子上的评论。我的意思是玩家
而不是游戏用户
你可以随时用下面的文字回答。