私は2つのテーブル、tblPlayersとtblMatchesを持つデータベースを持っています。複数の列のエントリを数えるSQLクエリ
tblPlayersには、playerID、playerNameというフィールドがあります。
tblMatchesには、matchID、scorer1ID、scorer2ID、scorer3IDが含まれています。
プレーヤーが得点したゴール数をカウントし、playerIDで返すクエリを実行する必要があります。
私は次のことを試してみました:必要に応じて
SELECT
tblPlayers.playerID, tblPlayers.playerName, count(*) AS goals
FROM
tblPlayers, matches
WHERE
(tblPlayers.playerID = tblMatches.scorer1ID
OR
tblPlayers.playerID = tblMatches.scorer2ID
OR
tblPlayers.playerID = tblMatches.goalscorer3ID)
GROUP BY tblPlayers.playerID
ORDER BY goals DESC
しかし、これは(カウント機能は、プレイヤーがゲーム内で複数のゴールを決めることができるという事実のために許可していないとして、機能していませんたとえば、プレーヤーが3つのゴールを獲得した場合、そのスコアは、scorer1IDフィールド、scorer2IDフィールド、およびscorer3IDフィールドに表示されますが、カウントは3になる必要があるときに1の値を返します。
私はこれを解決しようとしている最後の数日間、私の髪を引き裂いてきた!どんな助けでも大歓迎です。
試合に3つ以上のゴールがあるとどうなりますか? – barsju
このようにテーブルを設定しましたか?私はこれを行うより効率的な方法があると思う。 – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz