少なくとも 2 人のファンを持つキャプテン以外のプレーヤーの名前を返す SQL クエリを作成しようとしています。
ファンが好きなチームと好きな選手に分かれているのが難点なので、チームとしても個人的にも好きな選手を数えなければなりません。
これが私が思いついたものですが、正しいレコードが返されません:
select players.name
from players
-- join relevant relations
join teams
on teams.name = players.team
join favplayers
on players.name = favplayers.player
join favteams
on players.team = favteams.team
-- conditions
where players.team <> teams.captain
group by players.name
having (count(favplayers.player) + count(favteams.team)) > 1;
参照用のリレーショナル モデルは次のとおりです。
何か案は?
出力:
NAME COUNT(DISTINCTFAVPLAYERS.FAN) COUNT(DISTINCTFAVTEAMS.FAN)
-------------------- ----------------------------- ---------------------------
Arthurs 3 1
Becker 1 1
Bryan 0 3
Greul 0 2