首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL -在一个字段中显示多行(具有内部联接的表)q

MySQL -在一个字段中显示多行(具有内部联接的表)q
EN

Stack Overflow用户
提问于 2016-07-12 12:46:17
回答 1查看 207关注 0票数 0

我有一个mysql数据库,有3个表,一个是固定通道,一个是足球,另一个是卫星。

基本上,卫星表格包含关于卫星频道(名称、国家、渠道)的信息,足球装置包含的信息(matchid,hometeam,awayteam,比赛……),而固定频道是一个包含(matchid,和channels,这些分别由卫星和足球固定表中的主键连接)的表格。

以下是各表的进一步详情:

跳台

我使用了下面的查询,它成功了,我能够从表中得到我需要的详细信息。

代码语言:javascript
复制
"SELECT * FROM fixturechannels INNER JOIN footballfixtures ON fixturechannels.matchid=footballfixtures.matchid INNER JOIN satellite ON fixturechannels.channelid=satellite.channelid";

用于回显详细信息的代码是:

代码语言:javascript
复制
 <tbody><tr>
            <th>Match ID</th>
            <th>Home Team</th>
            <th>Away Team</th>
            <th>Competition</th>
            <th>Date</th>
            <th>Time</th>
            <th>Channel ID</th>
            <th>Channel Name</th>


                </tr>
                <?php foreach ($results as $res) { ?>
                <tr>
               <td><?php echo $res["matchid"]; ?></td>
               <td><?php echo $res["hometeam"]; ?></td>
               <td><?php echo $res["awayteam"]; ?></td>
               <td><?php echo $res["competition"]; ?></td>
               <td><?php echo $res["date"]; ?></td>
               <td><?php echo $res["time"]; ?></td>
              <td><?php echo $res["channelid"]; ?></td>
              <td><?php echo $res["name"]; ?></td>
            </tr>

我的问题是,匹配细节会显示两次,因为有两个频道列出了显示相同匹配的方式(见图像)。

不校正输出

我想要的输出是让每个匹配的细节显示一次,多个频道的名称显示在通道名称列(没有多行)中。

我试过使用GROUP_CONCAT,但没有成功,我尝试了GROUP_CONCAT,因为我知道在MYSQL中每个字段不建议有多个值。

感谢任何能够提供援助或指导的人。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-12 12:51:04

在主队、客场和比赛中加入一个group_by和GROUP_CONCAT的频道应该是有效的!

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

https://stackoverflow.com/questions/38329319

复制
相关文章

相似问题

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