0

一意の PID を持つ 2 つのテーブルがあります。1 つの SQL ステートメントで両方のテーブルのフィールドにアクセスできるように、主キー/外部キーを設定する方法を知る必要があります。

例: 次のデータ構造を使用して、プレイヤーの名前と写真をエコーアウトしたいだけでなく、PHP を介してすべての統計情報もエコーアウトしたいと考えています。プレーヤーの統計だけでこれを成功させましたが、別のテーブルのフィールドにアクセスする方法がわかりません。

これまでの私のデータベース構造は次のとおりです。

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++;
}
4

1 に答える 1

2
$sql = "
SELECT p.*, s.*
FROM Players AS p
LEFT JOIN Stats AS s ON p.PID = s.PID
ORDER BY s.FantasyPoints DESC
";

LEFT JOIN ではなく 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 />";
}
于 2012-07-14T13:30:19.690 に答える