我还在学习 SQL,但我的大脑很难处理这个问题。
假设我有 3 张桌子:
teams
players
并teams_players
作为我的链接表
我想做的就是运行一个查询来获取每支球队和他们的球员。
我试过这个:
SELECT *
FROM teams
INNER JOIN teams_players
ON teams.id = teams_players.team_id
INNER JOIN players
ON teams_players.player_id = players.id
但它为每支球队的每个球员返回了一个单独的行。加入是正确的方法还是我应该做其他事情?
- - - - - - - - - - - - - - - - - - - - - 编辑
好的,所以据我所知,这不一定是一个坏方法。我只需要在循环时按团队对数据进行分组。
我还没有尝试过提供的修改后的 SQL 语句,但我会在今天回复您。
要回答有关结构的问题 - 我想我并没有考虑返回的行结构,这是导致我困惑的一部分。在这种特殊情况下,每支球队仅限于 4 名球员(或更少),所以我想对我有帮助的结构如下所示:
teams.id, teams.name, players.id, players.name, players.id, players.name, players.id, players.name, players.id, players.name,
1 Team ABC 1 Jim 2 Bob 3 Ned 4 Roy
2 Team XYZ 2 Bob 3 Ned 5 Ralph 6 Tom