首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MySQL将行结果合并到新列中

MySQL将行结果合并到新列中
EN

Stack Overflow用户
提问于 2011-01-27 07:53:18
回答 2查看 1.7K关注 0票数 1

我正在尝试设置一个查询,以将数据返回到VB.Net数据网格。我想将结果汇总到一个新的列中,如下所示:

例如,在Match-no上:

代码语言:javascript
运行
复制
Date     Sponsor    Match_no     Team
---------------------------------------
1-1-11     Nike        1         Tigers
1-1-11     Nike        1         Bears
2-1-11     Crisco      2         Llamas
2-1-11     Crisco      2         Tigers 

将其滚动到一个新列中。

代码语言:javascript
运行
复制
Date     Sponsor    Match_no     Teams_playing
---------------------------------------------------
1-1-11    Nike         1          Tigers vs Bears
2-1-11    Crisco       2          Llamas vs Tigers

我尝试使用"group_concat“,但由于某种原因,它将团队的整个列表汇总到一个列中,而不考虑match_no。

在此示例中,将有4个表:

代码语言:javascript
运行
复制
Dates        Sponsors           Match          Team
------       --------         -------        --------
Date_id      Sponsor_id         Match_id       Team_id
Date         Sponsor_name       Match_no       Team_name
                                Sponsor_id     Match_id
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-27 07:59:38

尝试:

代码语言:javascript
运行
复制
  SELECT m.date,
         m.sponsor,
         m.match_no,
         GROUP_CONCAT(m.team, SEPARATOR ' vs ')
    FROM MATCH_NO m
GROUP BY m.date, m.sponsor, m.match_no
票数 1
EN

Stack Overflow用户

发布于 2011-01-27 08:14:17

您的表结构看起来很可疑。日期没有匹配的通信。团队应该在一个单独的表中,有一个桥:

代码语言:javascript
运行
复制
match_team
-----------
match_id
team_id

或者如果每场比赛只有两支球队,那么就

代码语言:javascript
运行
复制
match
---------
match_id
Match_no
sponsor_id
date_id
team_id_a
team_id_b

通常情况下,我们不会创建只有id和date的日期表,例如,它不会帮助按日期对匹配表进行索引或搜索。

对于您的原始问题,查询将是

代码语言:javascript
运行
复制
select d.date, s.sponsor_name, m.match_no,
    group_concat(teams_playing separator ' vs ') Teams_playing
from match m
inner join dates d on d.date_id = m.date_id
inner join sponsors s on s.sponsor_id = m.sponsor_id
inner join team t on t.match_id = m.match_id
group by m.match_id, d.date, s.sponsor_name, m.match_no

参考:GROUP_CONCAT

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4811533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档