sql - SQL 将表组合成单行
问题描述
将表组合成单行的问题。
桌上游戏:
ID | player1_ID | player2_ID | 德斯 |
---|---|---|---|
11 | 23 | 68 | 某物 |
82 | 34 | 23 | 任何 |
302 | 13 | 34 | 嗯嗯嗯嗯 |
表玩家:
ID | 别名 |
---|---|
23 | 吉克斯 |
34 | 杰克 |
68 | 吉尔 |
13 | 约翰 |
我开始查询的关键是玩家 ID 之一。
我想显示玩家 ID=23 正在玩的所有游戏。可以是 Player1 或 Player2。
我也尝试过使用交叉表,
表交叉:
ID | player_ID | 游戏ID |
---|---|---|
1 | 23 | 11 |
2 | 68 | 11 |
3 | 34 | 82 |
2 | 23 | 82 |
3 | 13 | 302 |
3 | 34 | 302 |
但没有结果。
问题是我想要输出中的别名和其他玩家数据以及一些额外的棋盘数据,而不必在每个游戏中处理多行。
因此,请求的输出将如下所示:
游戏ID | player1_ID | player2_ID | 德斯 | 别名1 | 别名2 |
---|---|---|---|---|---|
11 | 23 | 68 | 某物 | 吉克斯 | 吉尔 |
82 | 34 | 23 | 任何 | 杰克 | 吉克斯 |
我尝试了几种方法,但无法弄清楚。谢谢您的帮助。
解决方案
试试这个:
SELECT g.*, p1.alias AS alias1, p2.alias AS alias2 FROM games g
JOIN players p1 ON p1.id = g.player1_ID
JOIN players p2 ON p2.id = g.player2_ID
推荐阅读
- mysql - SQL SELECT 表中的两个特定名称不起作用
- r - 如何在 R 中结合 Scoups 和 WoS 数据进行 biblioshiny
- javascript - React-Chart.js:如何增加图例和图表之间的空间?
- php - 使用 php 从用户那里获取强密码
- node.js - 如何在 node.js 中为 pbcopy 输入正确的编码?
- docker - Elasticsearch密码没有从kibana的环境变量中获取
- layout - 在Android-studio切换Layouts时,app启动时没有layout怎么回去?或者如何取消设置新布局?
- php - laravel 数据库存在检查
- python - 从具有同名字段的字典列表中删除键值对
- javascript - 将 Object.entries reduce 转换为泛型类型