に一定に対応し、テーブルの上に、その後、players
tries
、conversions
、penalties
、dropgoals
という名前の他のテーブルの名前、私がしています。 player_id
に対する罰則のconversions
MySQLの - 困りカウントのidの他のテーブル
player_id
ための変換のtries
player_id
ための試行の
- 数:
私は
players
からplayer_id
を取得する必要があり、その後、次のカウントpenalties
player_id
のドロップゴール数dropgoals
このすべては、各ゲームに約15人のプレイヤーが存在するため、一度に起こる必要があります。サイトはラグビーに関連しています。
SELECT players.player_id, players.number, CASE WHEN (COUNT(tries.player_id) = 0) THEN ' ' ELSE COUNT(tries.player_id) END AS nrTries FROM players LEFT JOIN tries ON players.player_id = tries.player_id WHERE players.team_id IS NULL GROUP BY players.player_id ORDER BY players.number
それはplayers
テーブルからすべてのプレーヤーを選択して、彼らの試みを数えますが、できるだけ早く私は、次のように変更して、それは私にエラーを与える:作品私は以下のことを試してみました
、 :
:SELECT players.player_id, players.number, player.name, CASE WHEN (COUNT(tries.player_id) = 0) THEN ' ' ELSE COUNT(tries.player_id) END AS nrTries FROM players, player LEFT JOIN tries ON players.player_id = tries.player_id WHERE players.player_id = player.player_id AND players.team_id IS NULL GROUP BY players.player_id ORDER BY players.number
それは次のエラーを与えます
Unknown column 'players.player_id' in 'on clause'
誰かがこれを手伝ってもらえますか、私は数日間苦労していますか?事前に
おかげ
//編集:
こんにちは、すべては、私が言う、プレイヤーは複数のタイプに獲得しているときに、このコードはことを除いて、見事に動作しますが、現在、非常に愚かな感じ試行錯誤、試行錯誤を繰り返し、それぞれのタイプの数を誤って計算し、すべて同じにします。
私の選手は1ペナルティと3ドロップゴールを記録し、3ペナルティと3ドロップゴールを出力したとしましょう。何が間違っているのか分かりません。
ここは私のクエリです:
SELECT players.player_id, players.number, player.name, player.surname,
CASE WHEN (COUNT(tries.player_id) = 0) THEN '& nbsp;' ELSE COUNT(tries.player_id) END AS nrTries,
CASE WHEN (COUNT(conversions.player_id) = 0) THEN '& nbsp;' ELSE COUNT(conversions.player_id) END AS nrConversions,
CASE WHEN (COUNT(dropgoals.player_id) = 0) THEN '& nbsp;' ELSE COUNT(dropgoals.player_id) END AS nrDropgoals,
CASE WHEN (COUNT(penalties.player_id) = 0) THEN '& nbsp;' ELSE COUNT(penalties.player_id) END AS nrPenalties
FROM players
LEFT JOIN tries ON players.player_id = tries.player_id AND tries.game_id = '$game_id'
LEFT JOIN conversions ON players.player_id = conversions.player_id AND conversions.game_id = '$game_id'
LEFT JOIN dropgoals ON players.player_id = dropgoals.player_id AND dropgoals.game_id = '$game_id'
LEFT JOIN penalties ON players.player_id = penalties.player_id AND penalties.game_id = '$game_id'
LEFT JOIN player ON players.player_id = player.player_id
WHERE players.player_id = player.player_id AND players.team_id IS NULL AND players.game_id = '$game_id'
GROUP BY players.player_id ORDER BY players.number
ご注意: $ game_idは、PHPの変数です。
&とnbspの間にスペースを入れました。それ以外の場合は、SOに出力されません。
誰かが正しい方向に向いていますか?
なぜ以前の提案に従っていませんか? – hobodave
私の3番目の答えはこれをカバーしていませんか?私はあなたのさらなる編集を本当に理解していないので、あなたのデータを明確にして間違っていますか? – cletus