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 的更多详细信息:
我在下面使用了以下查询,它起作用了,我能够从 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>
我的问题是比赛详情显示了两次
因为有两个频道被列为显示相同的匹配项(见图)
我想要的输出是让每个匹配项的详细信息显示一次,并在频道名称列中显示显示匹配项的多个频道的名称(没有多行)
我尝试使用 GROUP_CONCAT,但没有成功,我尝试了 GROUP_CONCAT,因为我知道不建议在 MYSQL 中每个字段有多个值。
非常感谢任何可以提供帮助或指导的人。
在主队、客队和比赛中添加 group_by 以及 GROUP_CONCAT 频道应该可行!
我有一个 mysql 数据库,其中有 3 个 tables,一个 table 叫做 fixturechannels,一个叫做 footballfixtures,一个叫做 satellite。
基本上卫星 table 包含有关卫星频道的信息(名称、国家、频道 ID),footballfixtures 包含(matchid、hometeam、awayteam、competition....),而 fixturechannels 是 table 包含(matchid 和 channelid,它们分别由来自卫星和 footballfixtures table 的外键链接)。
以下是有关 table 的更多详细信息:
我在下面使用了以下查询,它起作用了,我能够从 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>
我的问题是比赛详情显示了两次 因为有两个频道被列为显示相同的匹配项(见图)
我想要的输出是让每个匹配项的详细信息显示一次,并在频道名称列中显示显示匹配项的多个频道的名称(没有多行)
我尝试使用 GROUP_CONCAT,但没有成功,我尝试了 GROUP_CONCAT,因为我知道不建议在 MYSQL 中每个字段有多个值。
非常感谢任何可以提供帮助或指导的人。
在主队、客队和比赛中添加 group_by 以及 GROUP_CONCAT 频道应该可行!