2017-11-24 9 views
1

私はこれらの2つのSQLクエリを組み合わせるのに苦労しています。大きな結合クエリと重複クエリを組み合わせる

SELECT players.player_id, players.tag, players.game_race, 
     earnings.tournament, earnings.player, earnings.position, 
     tournaments.tournament_id, tournaments.region 
    FROM players 
    JOIN earnings ON players.player_id = earnings.player 
    JOIN tournaments ON earnings.tournament = tournaments.tournament_id 
    where position = 1 
ORDER BY players.player_id; 

SELECT tournament, earnings.player, prize_money, position 
FROM earnings 
join (
    SELECT player FROM earnings 
    where position = 1 group by player having count(player) > 3) 
as DupPlayer 
on earnings.player=DupPlayer.player 
where position = 1; 

だから私は労働組合でみました。

次に、「使用されたSELECT文の列数が異なります」というエラーメッセージが表示されます。これを修正するにはどうすればいいですか?組合よりも良い方法はありますか?私は本当に私はすべての列を参照したいので、私の選択ステートメントを変更したくない。

答えて

2

以下のようなクエリを組み合わせる:

SELECT players.player_id, players.tag, players.game_race, 
     earnings.tournament, earnings.player, earnings.position, 
     tournaments.tournament_id, tournaments.region 
    FROM players 
    JOIN earnings ON players.player_id = earnings.player 
    JOIN (SELECT player FROM earnings 
     where position = 1 group by player having count(player) > 3) 
     as DupPlayer on earnings.player=DupPlayer.player 
    JOIN tournaments ON earnings.tournament = tournaments.tournament_id 
    where position = 1 
ORDER BY players.player_id; 
関連する問題