首页 > 解决方案 > 连接两个表和两个连接表

问题描述

我有这些表:

连接表:

基本上每场比赛我都想看看球队的数量和球员的数量。

游戏名称 - 队伍数量 - 玩家数量

使用内部连接,我设法与团队而不是玩家一起加入游戏。我相信它涉及多个选择语句?

标签: mysqlsqljoinselectjunction-table

解决方案


您可以加入games并在联结表teams的帮助下。games_teams然后,您可以加入其中teams_players以获取玩家 ID。请注意,对于此查询,您甚至不需要该players表,因为您只需要它们的编号:

SELECT   game_name, 
         COUNT(DISTINCT gt.team_id) AS number_of_teams,
         COUNT(DISTINCT tp.player_id) AS number_of_players
FROM     games g
JOIN     games_teams gt on g.game_id = gt.game_id
JOIN     teams t ON gt.team_id = t.team_id
JOIN     teams_players tp ON t.team_id = tp.team_id
GROUP BY game_name

推荐阅读