と という名前の 2 つのテーブルがplayer
ありteam
、これらは という名前の 3 つ目のテーブルを介して多対多の関係で結び付けられていますplayer_team
。
テーブル構造と現在のクエリを見つけることができます: http://sqlfiddle.com/#!2/e6db4/18
team.id
プレーヤーの最大レーティングを含むとともに、プレーヤーのデータを返すクエリが必要です。また、レーティングが の場合、<= X
そのプレーヤーは除外する必要があります。
サンプル クエリは正しい結果を返しますが、非常に非効率的です。
明らかに、各テーブルの行に 1 回だけアクセスすることで同じ結果が得られますが、問題はこれをどのように達成するかです。(PostgreSQLの方言での返信を希望します)