【发布时间】:2021-04-18 16:23:59
【问题描述】:
我正在尝试通过链接表从我的一个表中获取一些数据,并将多行输出为一列 - 这是一个个人项目,旨在帮助我学习,因为我对 SQL 还很陌生而且我什至不确定要搜索什么 - 我已经查找了我能找到的内容,但没有成功。
我拥有的是
表 1 - 播放
| id | name |
|---|---|
| 1 | gamename1 |
| 2 | gamename1 |
| 3 | gamename2 |
表 2 - 玩家
| id | name |
|---|---|
| 1 | playername1 |
| 2 | playername1 |
| 3 | playername2 |
链接表
| play_id | players_id |
|---|---|
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
| 2 | 2 |
| 3 | 2 |
| 3 | 3 |
我希望看到的内容(不必完全匹配,而是显示每个 play_id 的所有玩家,每行一个 play_id)
| Game id | Player name1 | Player name2 | Player name3 |
|---|---|---|---|
| gamename1 | name1 | name2 | name3 |
| gamename1 | name2 | ||
| gamename2 | name2 | name3 |
我认为这会起作用,但它没有,我能够获得每场比赛的第一个玩家(使用 group by),或者如果我删除它,我会为我的链接表中的每个条目获得一行.
SELECT
plays.name,
players.name
FROM
plays
INNER JOIN linktable
ON linktable.play_id = play.id
INNER JOIN players
ON linktable.players_id = players.id
GROUP BY
plays.id
提前感谢你们的帮助!
【问题讨论】:
-
请提供样本数据和所需的输出
-
对不起,eshirvana - 我不经常使用 stackoverflow,我是用手机写的,但我已经完成了你现在要求的 :)
-
你需要使用pivot