Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 下面给出的是我在sql中与count相关的查询,我希望得到预期的输出_Mysql - Fatal编程技术网

Mysql 下面给出的是我在sql中与count相关的查询,我希望得到预期的输出

Mysql 下面给出的是我在sql中与count相关的查询,我希望得到预期的输出,mysql,Mysql,我编写了这个查询,它提供了playlist_details表中特定歌曲的总数。(举例来说:让我们考虑一下歌曲名是“XYZ”,在PristListMyType表中有三个条目,有三个不同的日期,所以我的查询显示输出为“计数3”。.现在我想进一步划分这个查询,这样我需要在这个count列旁边再加一列,它显示了歌曲xyz在表中重复的三个日期,因此我得到了3的计数 SELECT playlist_details.`EPISODE_TITLE` AS SongName, songs_master.`ASSE

我编写了这个查询,它提供了playlist_details表中特定歌曲的总数。(举例来说:让我们考虑一下歌曲名是“XYZ”,在PristListMyType表中有三个条目,有三个不同的日期,所以我的查询显示输出为“计数3”。.现在我想进一步划分这个查询,这样我需要在这个count列旁边再加一列,它显示了歌曲xyz在表中重复的三个日期,因此我得到了3的计数

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循环中调用此函数。由于长度限制,我无法将代码粘贴到此处。但是查询提供了你干得很好。我只是做了一些额外的步骤,把每行的日期分开