tblPlayers と tblMatches の 2 つのテーブルを持つデータベースがあります。
tblPlayers には次のフィールドが含まれます: playerID、playerName。
tblMatches には、matchID、scorer1ID、scorer2ID、scorer3ID が含まれます。
クエリを実行して、プレーヤーが獲得したゴールの合計数をカウントし、それをプレーヤー ID と共に返す必要があります。
私は次のことを試しました:
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 つのゴールを決めた場合、彼の ID は scorer1ID フィールド、scorer2ID に表示されます)。 field と scorer3ID フィールドを使用しますが、カウントは 3 である必要がある場合に 1 の値を返すだけです)。
それが理にかなっていることを願って、私はこれを解決しようとしてここ数日間髪を引き裂いています! どんな助けでも大歓迎です。