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

MySQL - Display multiple rows in one field (tables with inner joins)q

我有一个 mysql 数据库,其中有 3 个 tables,一个 table 叫做 fixturechannels,一个叫做 footballfixtures,一个叫做 satellite。

基本上卫星 table 包含有关卫星频道的信息(名称、国家、频道 ID),footballfixtures 包含(matchid、hometeam、awayteam、competition....),而 fixturechannels 是 table 包含(matchid 和 channelid,它们分别由来自卫星和 footballfixtures table 的外键链接)。

以下是有关 table 的更多详细信息:

tablelayouts

我在下面使用了以下查询,它起作用了,我能够从 table

中回显我需要的详细信息
"SELECT * FROM fixturechannels INNER JOIN footballfixtures ON fixturechannels.matchid=footballfixtures.matchid INNER JOIN satellite ON fixturechannels.channelid=satellite.channelid";

用于回显详情的代码是:

 <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>

我的问题是比赛详情显示了两次 因为有两个频道被列为显示相同的匹配项(见图)

incorrectoutput

我想要的输出是让每个匹配项的详细信息显示一次,并在频道名称列中显示显示匹配项的多个频道的名称(没有多行)

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

非常感谢任何可以提供帮助或指导的人。

在主队、客队和比赛中添加 group_by 以及 GROUP_CONCAT 频道应该可行!