Mysql 下面给出的是我在sql中与count相关的查询,我希望得到预期的输出
我编写了这个查询,它提供了playlist_details表中特定歌曲的总数。(举例来说:让我们考虑一下歌曲名是“XYZ”,在PristListMyType表中有三个条目,有三个不同的日期,所以我的查询显示输出为“计数3”。.现在我想进一步划分这个查询,这样我需要在这个count列旁边再加一列,它显示了歌曲xyz在表中重复的三个日期,因此我得到了3的计数Mysql 下面给出的是我在sql中与count相关的查询,我希望得到预期的输出,mysql,Mysql,我编写了这个查询,它提供了playlist_details表中特定歌曲的总数。(举例来说:让我们考虑一下歌曲名是“XYZ”,在PristListMyType表中有三个条目,有三个不同的日期,所以我的查询显示输出为“计数3”。.现在我想进一步划分这个查询,这样我需要在这个count列旁边再加一列,它显示了歌曲xyz在表中重复的三个日期,因此我得到了3的计数 SELECT playlist_details.`EPISODE_TITLE` AS SongName, songs_master.`ASSE
SELECT
playlist_details.`EPISODE_TITLE` AS SongName,
songs_master.`ASSET_ID`,
song_rights_master.`CHANNEL_IDS` AS VChannels,
channel_master.`PLAYLIST_EXPORT_FILE_NAME`,
playlist_details.`DURATION`,
Count(*) AS Count,
programmes_master.`TITLE` as moviename,
songs_master.`SONG_TYPE`
FROM
playlist_details
INNER JOIN songs_master ON playlist_details.`ASSET_ID` = songs_master.`ASSET_ID`
INNER JOIN song_rights_master ON song_rights_master.`SONG_ID` = songs_master.`SONG_ID`
INNER JOIN channel_master ON channel_master.`CHANNEL_ID` = song_rights_master.`CHANNEL_IDS`
LEFT JOIN programmes_master ON songs_master.`PROGRAMME_ID` = programmes_master.`PROGRAMME_ID`
WHERE playlist_details.`EVENT_TYPE` = 'Song' AND
song_rights_master.`songs_agreements_master_id`='".$agreement."'
GROUP BY SongName
电流输出:+------------------------+
| SongName AssetID Total |
+------------------------+
| XYZ 000000 3 |
+------------------------+
+-------------------------------------+
| SongName AssetID ScheduleDate Total |
+-------------------------------------+
| XYZ 000000 13-09-2019 3 |
| 14-09-2019 |
| 15-09-2019 |
+-------------------------------------+
预期输出:+------------------------+
| SongName AssetID Total |
+------------------------+
| XYZ 000000 3 |
+------------------------+
+-------------------------------------+
| SongName AssetID ScheduleDate Total |
+-------------------------------------+
| XYZ 000000 13-09-2019 3 |
| 14-09-2019 |
| 15-09-2019 |
+-------------------------------------+
我真的不知道您预期输出的格式,您似乎想要额外的结果行,其中只有日期?如果您有多个结果,则很难将它们链接到您的歌曲。我建议一种解决方案,将日期作为字符串输出,并用comas分隔,用于每个结果,如下所示:
+-----------------------------------------------------------+
| SongName AssetID ScheduleDate Total |
+-----------------------------------------------------------+
| XYZ 000000 13-09-2019,14-09-2019,15-09-2019 3 |
+-----------------------------------------------------------+
为此,您可以使用GROUP\u CONCAT
,它将连接与GROUP BY
分组的值(假设该字段在数据库中命名为ScheduleDate
):
这很管用!但我使用了一种稍微不同的方法。我创建了一个新函数,类似下面给出的函数,并使用
将获取的日期分隔在新行上,然后在运行mysqli\u fetch\u数组的while循环中调用此函数。由于长度限制,我无法将代码粘贴到此处。但是查询提供了你干得很好。我只是做了一些额外的步骤,把每行的日期分开