我有两个表都有一个唯一的PID。我需要知道如何设置主键/外键,以便我可以在一个SQL语句中访问两个表中的字段。
例如:通过以下数据结构,我想回应玩家的名字和照片,同时也通过PHP回应所有的统计数据。我只使用播放器Stats成功完成了这项操作,但我不知道如何访问另一个表中的字段。
到目前为止,这是我的数据库结构:
Players
-PID (Set as Primary Key)
-Name
-Height
-College
-Photo
Stats
-PID
-Touchdowns
-Receptions
当前的PHP代码:
$query="
SELECT * FROM Stats
ORDER BY Stats.FantasyPoints DESC";
$res=mysql_query($query);
$num=mysql_numrows($res);
$i=0;
while($i< $num){
$Name = mysql_result($res, $i, "Name");
$FantasyPoints = mysql_result($res, $i, "FantasyPoints");
echo $Name . ': '. $FantasyPoints . "<br />";
$i++;
}
答案 0 :(得分:2)
$sql = "
SELECT p.*, s.*
FROM Players AS p
LEFT JOIN Stats AS s ON p.PID = s.PID
ORDER BY s.FantasyPoints DESC
";
你也可以使用JOIN而不是LEFT JOIN,这会将结果限制为只有拥有统计数据的玩家
编辑sql以产生类似于您自己的sql的结果。
=============================================== =======
这就是我要去做的事情......
$query =
"
SELECT s.*, p.*
FROM Stats AS s
LEFT JOIN Players AS p ON p.PID = s.PID
ORDER BY s.FantasyPoints DESC
";
$res = mysql_query($query);
while ($row = mysql_fetch_assoc($res))
{
echo "{$row['name']}: {$row['FantasyPoints']}<br />";
}