SELECT *
FROM ( SELECT a.*, a.id AS id_player,
(SELECT COUNT(id)
FROM `vd7qw_footsal_goals`
WHERE a.id = id_player
AND id_group IN (SELECT id_group
from `vd7qw_footsal_groupofleague`
WHERE id_league = 2)
) AS goals,
team.team_name
FROM `vd7qw_footsal_players` AS a
LEFT JOIN vd7qw_footsal_teams AS team
ON team.id = a.id_team
LEFT JOIN vd7qw_footsal_teamofgroup AS tog
ON tog.id_team = team.id
LEFT JOIN vd7qw_footsal_groups AS g
ON g.id = tog.id_group
WHERE (a.state IN (1))
) AS h
WHERE goals > 0
ORDER BY goals DESC
これは、1つのリーグに2つ以上のグループがあり、プレーヤーが各グループでゴールを決めた場合のクエリです。クエリは正しい数のゴールを返しますが、プレーヤーが重複しています。たとえば、次のようになります。
John Doe got 3 goals in group 1
と
John Doe got 4 goals in group 2
クエリは以下を返します:
John Doe got 7 goals
私の間違いはどこにありますか?