0

我有一张歌曲表,有些歌曲是专辑歌曲,有些是单曲……我有一张专辑表……

歌曲表 cols: Song_ID, Album_ID, Song_Name, Date_Released, Timestamp_Released, others... 如果 Album_ID 为[null],则表示歌曲为单曲

专辑表 cols: Album_ID, Album_Name, Song_IDs, Date_Released, others...

注1:Timestamp_Released相册表中没有

注2:Date_Released只是没有时间的一天,即“2011-06-16”

我目前正在使用此查询来显示一个表(在我的 html/php 页面中),每行是一个单曲或一张专辑(专辑中的歌曲作为专辑显示在一行中)

SELECT 
    IF(Album_ID IS NULL,s.Song_Name,a.Album_Name) as name, 
    IF(Album_ID IS NULL,s.Date_Released,a.Date_Released) as datereleased, 
    s.Timestamp_Released
FROM songs s LEFT JOIN albums a ON (s.Album_ID = a.Album_ID)
GROUP BY 1,2
ORDER BY 2 DESC,1
LIMIT 0,10; 

上面的查询根据日期对歌曲和专辑列表进行排序,并给出专辑中最旧歌曲的和Date_Released...Timestamp_Released

所以我的问题是如何给专辑中最新歌曲的Date_Released和?Timestamp_Released

谢谢 :)

4

1 回答 1

1

而不是s.Date_Released, s.Timestamp_ReleasedMAX(s.Date_Released) as Newest_Date_Released, MAX(s.Timestamp_Released) as Newest_Timestamp_Releasd UPDATE

SELECT 
IF(Album_ID IS NULL,s.Song_Name,a.Album_Name) as name, 
MAX(IF(Album_ID IS NULL,s.Date_Released,a.Date_Released)) as datereleased, 
MAX(s.Timestamp_Released)
FROM songs s LEFT JOIN albums a ON (s.Album_ID = a.Album_ID)
GROUP BY 1
ORDER BY 2 DESC,1
LIMIT 0,10; 
于 2011-06-16T20:33:12.397 回答