Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 拉入关系数据库字段_Php_Mysql_Relational - Fatal编程技术网

Php 拉入关系数据库字段

Php 拉入关系数据库字段,php,mysql,relational,Php,Mysql,Relational,这就是我的问题。我有三张桌子: 人员表 person\u id,name 事件表 事件id、事件名称、事件日期 火柴桌 match\u id,person\u a,person\u b,winner,event 所以在matches表中,person_a、person_b和winner是对应于person表中person_id的整数 如果我从Matches表中抽出一行,结果如下: 1,1,2,1,国际象棋锦标赛#33 如何使用person表查找这3个字段(person_a、person_b和wi

这就是我的问题。我有三张桌子:

人员表

person\u id,name

事件表

事件id、事件名称、事件日期

火柴桌

match\u id,person\u a,person\u b,winner,event

所以在matches表中,person_a、person_b和winner是对应于person表中person_id的整数

如果我从Matches表中抽出一行,结果如下:

1,1,2,1,国际象棋锦标赛#33

如何使用person表查找这3个字段(person_a、person_b和winner),以输入它们的实际姓名,从而得到正确的结果

1,约翰,史蒂文,约翰,国际象棋锦标赛#33


我考虑加入两个表,但这没有意义,因为我不能只对id=id或WHERE id=id进行操作。我感谢任何帮助。

数据库模式中的外键会很有帮助。我可以使person\u a、person\b和winner字段具有person\u id的外键,但它们仍然会以1、2、3等形式插入。哎呀,我的错。我错过了那部分。在手机上阅读会让人有点困惑哈哈。数据库模式中的外键会很有帮助。我可以使person_a、person_b和winner字段具有person_id的外键,但它们仍然会以1、2、3等形式输入。哎呀,我的错。我错过了那部分。在电话上读这么多会让人有点困惑,哈哈。酷豆,效果完美无瑕。不过看起来工作太多了。哈哈。你可能会认为会有一个更简单的方法,因为字段是关系型的。酷豆,工作完美无瑕。不过看起来工作太多了。哈哈。你可能会认为有一种更简单的方法,因为字段是关系型的。
SELECT
  Matches.match_id AS match_id,
  PersA.name AS persa_name,
  PersB.name AS persb_name,
  IF(winner=person_a,PersA.name,PersB.name) AS winner_name,
  Events.event_name AS event_name
FROM
  Matches
  INNER JOIN Person AS PersA ON Matches.person_a=PersA.person_id
  INNER JOIN Person AS PersB ON Matches.person_b=PersB.person_id
  INNER JOIN Events ON Matches.event=Events.event_id
WHERE
  -- whatever