Php 找不到从两个不同表中选择的好解决方案

Php 找不到从两个不同表中选择的好解决方案,php,mysql,sql,join,Php,Mysql,Sql,Join,所以我有一个问题,我需要在同一个MySQL查询中从两个不同的表中进行选择 问题是: SELECT * FROM minigame_players WHERE lobby='$game_id' 这非常有效,但我希望它也能从username=下面查询返回值的表users中选择权限。例如,假设下面的查询返回值John,那么我想在同一个查询中从username=John的用户中选择权限-我尝试从多个网站上查找它,但找不到好的解决方案。使用这样的子查询可能会有所帮助,如果映射这些表,我建议您也使用mys

所以我有一个问题,我需要在同一个MySQL查询中从两个不同的表中进行选择

问题是:

SELECT * FROM minigame_players WHERE lobby='$game_id'

这非常有效,但我希望它也能从username=下面查询返回值的表users中选择权限。例如,假设下面的查询返回值John,那么我想在同一个查询中从username=John的用户中选择权限-我尝试从多个网站上查找它,但找不到好的解决方案。

使用这样的子查询可能会有所帮助,如果映射这些表,我建议您也使用mysql连接

SELECT  (
  SELECT *
  FROM permissions
  where user = ?
 ) AS permission,
 (
  SELECT * 
  FROM minigame_players 
  WHERE lobby = ?
 ) AS player
)
您也可以使用UNION,但这些表中的列数应该相同

SELECT  (
  SELECT *
  FROM permissions
  where user = ?
 ) AS permission,
 (
  SELECT * 
  FROM minigame_players 
  WHERE lobby = ?
 ) AS player
)

使用prepared语句防止sql注入。

您正在寻找一个简单的联接:


注意:始终使用准备好的语句和参数化查询。考虑更详细的信息。

你应该研究连接查询——也就是说,你对SQL注入是开放的。变量$GAMEYID已经通过MySQL字符串转义命令,所以你应该考虑使用MySQLIZ或PDO-API而不是级联的值来显示2个表的模式,或者至少告诉我们哪一列链接了这两个tables@AlexKV向我们展示如何使它更安全——从这里开始更容易:user=toto我们是假设用户名是toto还是toto是MySQL中的一个变量或什么?谈到MySQL,我并没有太多的经验。toto是一个值,但我忘记了将脚本编写为prepared语句,也许您应该共享您的表模式或php代码