如何在PHP和MySQL中将行值分隔为不同的列

如何在PHP和MySQL中将行值分隔为不同的列,php,mysql,Php,Mysql,我试图创建一个查询,从不同的行中获取值,并将它们放入不同的列中。以下是我到目前为止提出的问题: SELECT red.match_number AS 'Match #', red.redTeams AS 'Red Alliance', blue.blueTeams AS 'Blue Alliance', red.redScore AS 'Red Alliance Score', blue.blueScore AS 'Blue Alliance Score' FROM(SELECT match_n

我试图创建一个查询,从不同的行中获取值,并将它们放入不同的列中。以下是我到目前为止提出的问题:

SELECT red.match_number AS 'Match #', red.redTeams AS 'Red Alliance', blue.blueTeams AS 'Blue Alliance', red.redScore AS 'Red Alliance Score', blue.blueScore AS 'Blue Alliance Score'
FROM(SELECT match_number, GROUP_CONCAT(team SEPARATOR ' | ') AS redTeams, score AS redScore
FROM `scout_data`
WHERE alliance_color = 'red'
GROUP BY match_number) AS red
LEFT JOIN (SELECT match_number, GROUP_CONCAT(team SEPARATOR ' | ') AS blueTeams, score AS blueScore
FROM `scout_data`
WHERE alliance_color = 'blue'
GROUP BY match_number) AS blue ON red.match_number = blue.match_number

这将创建一个如下表:
但我想将蓝色和红色alliance列中的数字分开,因此它看起来类似于:
除了没有限定列名称之外。我的表的结构如下所示:
我已将图片中的所有列限制为仅与查询相关的列。

我认为您想要或引用的称为交叉联接或透视表

正如我在评论中所说

已经回答了

这个答案的例子

关于MySql组的警告\u CONCAT():

当我看到你使用
GROUP\u CONCAT
时,我还应该提到(我觉得)另一件事,当我第一次看到它时,我认为它是我所需要的一些东西的神奇答案。后来我发现它是特定于MySql的。但更令人担忧的是,在经过一些艰苦的调试后,我发现它有一个长度限制。所以简而言之,
GROUP\u CONCAT
可以截断您的数据。我决定避免在代码中使用它。我想我会警告你的

需要更多信息 因为,抛开这些,如果你在第一张图片中有了设置,那么这更多的是一个演示问题

http://puu.sh/jd3a7/658df8a999.png
现在,向我们提供您的表示代码(php\html)和进入其中的数据比Sql更合适,Sql很好,但没有数据库设置。真的很难看到它的输出


基本上,结果数组的结构是什么,以及如何使其看起来像image1?

正如ArtisticPhoenix所说,我认为需要更多关于数据库配置的信息才能提供最准确的答案。从我收集的数据来看,所有这些数据似乎都在一个表中。我感到困惑的是,如果按照团队ID进行分组和连接,那么每个团队是否都存储了相同的分数?如果不是,那么返回的分数不可能是错误的吗


我想我的意思是,这里似乎存在一些数据规范化问题,获取更多信息也有助于调试这些问题。

联盟是否总是3人一组?我相信您指的是数据透视表或交叉联接>?这个答案的例子