0

曲のテーブルがあり、一部の曲はアルバムの曲で、一部の曲はシングルです...そして、アルバムのテーブルがあります...

曲テーブルの列: Song_ID, Album_ID, Song_Name, Date_Released, Timestamp_Released、その他... Album_ID が の場合、[null]その曲はシングルであることを意味します

Albums テーブル列: Album_ID, Album_Name, Song_IDs, Date_Released、その他...

注 1:Timestamp_Releasedアルバム テーブルにはありません

注 2:Date_Released時間のない日のみ、つまり「2011-06-16」です。

私は現在、このクエリを使用して、各行が単一またはアルバムであるテーブルを(html/phpページで)表示しています(アルバムにある曲はすべてアルバムとして1行に表示されます)

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

UPDATEs.Date_Released, s.Timestamp_Releasedを書く代わりにMAX(s.Date_Released) as Newest_Date_Released, MAX(s.Timestamp_Released) as Newest_Timestamp_Releasd

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 に答える