[英]How to create MYSQL record source for two related tables
我目前有一个页面显示名为“ tblplayers”的表中的玩家信息。 我当前使用的查询是:
$result = mysql_query("SELECT * FROM tblPlayers WHERE lng_RecordID_PK = '".$playerid."' ");
我还有一个名为“ tblMatches”的表格,其中包含玩家的比赛结果。 我希望记录集包括“ tblMatches”中的行,“ P1_ID”或“ P2_ID”等于“ tblPlayers”中的“ lng_RecordID_PK”字段。
如何修改$ result查询,使其返回:
???
谢谢你的协助。
这就是所谓的“加入”:
SELECT tblPlayers.*, tblMatches.*
FROM tblPlayers
LEFT JOIN tblMatches ON Ing_RecordID_PK IN (P1_ID, P2_ID)
您正在询问如何联接两个表,其中第二个表可能在第一个表中每个表都有多个记录。 这是一对多或1:N的LEFT JOIN
,并且通常使用LEFT JOIN
来完成,这意味着您希望“左”表中的所有内容以及“右”表中匹配的所有记录,并且您可能在“左侧”有一些记录,没有匹配项。
您的查询如下所示:
SELECT *
FROM tblPlayers
LEFT JOIN tblMatches
ON (tblPlayers.lng_RecordID_PK = tblMatches.P1_ID
OR tblPlayers.lng_RecordID_PK = tblMatches.P2_ID)
WHERE tblPlayers.lng_RecordID_PK = @PlayerID;
一点建议:
无法以您描述的方式从两个不同的表中获取行。 您无法从一个表中获得一行,而从另一张表中获得两行。 您可以执行两个单独的查询,或者使用JOIN语句将两个表连接在一起,然后从生成的连接表中接收结果。 如果您提供有关表结构的更多信息,我相信可以提供更多帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.