当前位置: 首页 > 知识库问答 >
问题:

如何通过链接表获取数据并将行转换为列

酆恩
2023-03-14

我试图通过链接表从我的一个表中获取一些数据,并将多行输出为列/s-这是一个个人项目,旨在帮助我学习,因为我对SQL相当陌生,我甚至不确定要搜索什么-我已经找到了我能找到的,但没有成功。

我拥有的是

表1-重头戏

表2-参与者

链接表

我想看到的(不一定要完全匹配,但要显示每个play\u id的所有玩家,每行一个play\u id)

我认为这会起作用,但它没有,我可以在每场比赛中只获得第一个球员(使用group by),或者如果我删除它,我会为我的链接表中的每个条目获得一行。

sql prettyprint-override">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

提前感谢你们的帮助!

共有1个答案

松烨烨
2023-03-14

考虑从Linktable开始,然后LEFT JOININNER JOIN如果没有孤立的链接)到查找表,PlaysPlayers。然后运行条件聚合以进行旋转:

sql prettyprint-override">SELECT p.`name` AS gamername
     , CASE WHEN ps.id = 1 THEN ps.name END AS Player_name_1
     , CASE WHEN ps.id = 2 THEN ps.name END AS Player_name_2
     , CASE WHEN ps.id = 3 THEN ps.name END AS Player_name_3

FROM linktable l
LEFT JOIN plays p
   ON l.play_id = p.id
LEFT JOIN players ps
   ON l.player_id = ps.id
ORDER BY p.id;

在线演示

 类似资料:
  • 我刚反应过来。Im正在尝试将包含链接的数组转换成将在网站中按顺序显示链接的东西。 类似这样的事情: 在服务器中显示的内容如下所示: 我试着做我找到的下面的代码,但是它失败了:

  • 本文向大家介绍如何通过R中的行将数据帧值转换为向量?,包括了如何通过R中的行将数据帧值转换为向量?的使用技巧和注意事项,需要的朋友参考一下 数据可以任何形式提供给我们,但有可能不适合用于分析。有时数据记录在数据框中,但我们可能需要将其作为向量。在这种情况下,我们必须更改向量中数据帧的值。这可以通过在将数据帧与t换位后将它们读取为矢量来读取数据帧值来完成。 示例 请看以下数据帧- 让我们看另一个例子

  • 嗨,我是redis的新手,想在这里得到一些帮助。我使用java和sql Server2008和redis server。为了与redis交互,我使用jedis api for Java。我知道redis用于存储基于键值的东西。每个键都有值。 问题背景: 我有一个名为“用户”的表,它存储数据,如id,姓名,电子邮件,年龄,国家。这是sql表的模式。现在这个表有一些行(也表示一些数据)。现在,我的主键

  • 我需要从Excel表中读取数据,并需要将数据转换为键值对。 我已经写了下面的代码。 这是我的代码: 我得到的结果如下: 然而,我需要的输出,所有的头列应该来在映射键和相应的数据应该作为值。 我需要将我的数据设置为如下格式,请帮助<代码>地图

  • main.java Controller/Controller.java 模型/ConnectDB.java 查看/fxmlSample.fxml 错误: 错误:(64,9)Java:类Sample.Controller.Controller中的method initData无法应用于给定类型;必需:javafx.event.actionevent找到:没有参数原因:实际和正式参数列表的长度不同

  • 这是期望的输入和期望的输出。我不熟悉SQL或Presto中使用的术语,文档似乎指向使用,但我认为这里的问题是动态创建列,但我很好奇在列已知且有限的情况下是否可以这样做。 则成为: 我能得到的最接近的方法是使用获取一组,可以在输出中一次提取一个。然而,理想的解决方案是不必显式列出最终要输出的每个,而是分解或滚动出的所有键: