如何簡化此游戲統(tǒng)計(jì)查詢?這段代碼按預(yù)期工作,但我很長很令人毛骨悚然。select p.name, p.played, w.won, l.lost from(select users.name, count(games.name) as playedfrom usersinner join games on games.player_1_id = users.idwhere games.winner_id > 0group by users.nameunionselect users.name, count(games.name) as playedfrom usersinner join games on games.player_2_id = users.idwhere games.winner_id > 0group by users.name) as pinner join(select users.name, count(games.name) as wonfrom usersinner join games on games.player_1_id = users.idwhere games.winner_id = users.idgroup by users.nameunionselect users.name, count(games.name) as wonfrom usersinner join games on games.player_2_id = users.idwhere games.winner_id = users.idgroup by users.name) as w on p.name = w.nameinner join(select users.name, count(games.name) as lostfrom usersinner join games on games.player_1_id = users.idwhere games.winner_id != users.idgroup by users.nameunionselect users.name, count(games.name) as lostfrom usersinner join games on games.player_2_id = users.idwhere games.winner_id != users.idgroup by users.name) as l on l.name = p.name如您所見,它由3個(gè)重復(fù)部分組成,用于檢索:玩家姓名和他們玩的游戲數(shù)量球員名稱和他們贏得的比賽數(shù)量球員姓名和他們輸?shù)舻谋荣悢?shù)量每個(gè)人還包括兩部分:玩家姓名以及他們作為player_1參與的游戲數(shù)量玩家姓名以及他們作為player_2參與的游戲數(shù)量怎么可以簡化?結(jié)果如下: name | played | won | lost ---------------------------+--------+-----+------ player_a | 5 | 2 | 3 player_b | 3 | 2 | 1 player_c | 2 | 1 | 1
如何簡化此游戲統(tǒng)計(jì)查詢?
慕絲7291255
2019-07-25 10:24:33