这是锦标赛系统的示例MySQL查询。
SELECT
tournament_game.game_identifier AS match_number,
tournament_game.id AS match_id,
tournament_game_round.round_number AS match_round_number,
tournament_game_round_team.team_identifier,
tournament_game_round_team_player.tournament_game_round_team_id,
tournament_game_round_team_player.isHost,
tournament_game_round_team_player.tournament_registration_id,
user_platform_name.name AS player_name
FROM tournament_game
LEFT JOIN tournament_game_round ON tournament_game_round.tournament_game_id = tournament_game.id
LEFT JOIN tournament_game_round_team ON tournament_game_round_team.tournament_game_round_id = tournament_game_round.id
LEFT JOIN tournament_game_round_team_player ON tournament_game_round_team_player.tournament_game_round_team_id = tournament_game_round_team.id
LEFT JOIN tournament_registration ON tournament_registration.id = tournament_game_round_team_player.tournament_registration_id
LEFT JOIN user_platform_name ON user_platform_name.id = tournament_registration.user_platform_name_id
WHERE tournament_game.id = %s;
哪个输出:
1 264 0 0 125 1 66 playername1
1 264 1 0 127 0 66 playername1
1 264 0 1 126 0 69 playername2
1 264 1 1 128 1 69 playername2
我希望数据以JSON格式设置为:
{
match_id: a.match_id,
matches: [
{
match_number: a.match_number,
match_rounds: [
{
match_round_number: a.match_round_number,
match_round_teams: [
{
team_identifier: a.team_identifier,
team_players: [
{
player_name: a.player_name,
isHost: a.isHost,
rego_id: a.tournament_registration_id
}
]
}
]
}
]
}
]
};
我可以使用非常长的丑陋且复杂的python算法获得所需的结果,但是我想知道是否存在一种可以轻松轻松地获得所需结果的方法。我确信这是学习像我这样的开发人员的常见障碍。
如果有更好的查询方法,我会不知所措。