(試合のホームプレーヤー)とmatches
を含むフィールドを持つスポーツフィクスチャデータを含むテーブルがあります。クエリを呼び出して、これら2つのフィールド(つまり、シーズンxから全体的にマッチアワードのプレーヤーが最も多い5人)の上位5つの値を見つけ、発生数とプレーヤーの名前を出力する必要があります。 。home_pom
away_pom
SELECT関数をどこから始めればよいのかわかりません。
一致テーブルには、ページの前半で$league_idに呼び出されleague_id
た別のテーブルに対応するフィールドが含まれています。leagues
現在、個別のplayers
テーブルはありません。これが関連性があると私が考えることができる唯一のものであるため、おそらく冗長になると思いました。
すなわち
match_id | homepom | awaypom | league_id
1 | Joe A | Jane B | 2
2 | Joe F | Jane G | 2
3 | Jane B | Joe F | 2
ジョーFとジェーンBが2つのpom賞を持っているとリストし、ジェーンGとジョーAが1つ持っているとリストします。
$host="cust-mysql-123-05"; // Host name
$username="unsn_637140_0003"; // Mysql username
$password="mypw"; // Mysql password
$db_name="nsnetballcouk_637140_db3"; // Database name
// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$areatoleaguepom=$_GET['area'];
$seasontoleaguepom=$_GET['season'];
$divisiontoleaguepom=$_GET['division'];
$leaguepom_query=("SELECT league_id FROM leagues WHERE area_id='$areatoleaguepom' AND season_id='$seasontoleaguepom' AND division_id='$divisiontoleaguepom'");
$leaguepom_result=mysql_query($leaguepom_query);
$leaguepom_row=mysql_fetch_array($leaguepom_result);
$leaguepom_id=$leaguepom_row['league_id'];
$toppom_query=(
"SELECT
player,
COUNT(player) as count
FROM (SELECT homepom AS player
FROM matches
WHERE league_id='$leaguepom_id'
UNION ALL
SELECT awaypom AS player
FROM matches
WHERE league_id='$leaguepom_id'
) as players
GROUP BY player
ORDER BY count DESC
LIMIT 5
");
$toppom_result=mysql_query($toppom_query);
while ($toppom_row=mysql_fetch_array($toppom_result));
echo $toppom_row['player'] . " " . $toppom_row['count'] . "<br>";
何かご意見は?