У меня есть таблица песен, некоторые песни - альбомные, а некоторые - синглы... И у меня есть таблица альбомов...
Столбцы таблицы песен: Song_ID, Album_ID, Song_Name, Date_Released, Timestamp_Released
, другие... Если Album_ID равен [null]
, это означает, что песня является синглом.
Столбцы таблицы альбомов: Album_ID, Album_Name, Song_IDs, Date_Released
, другие...
Примечание 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
самой новой песни в нем?
Спасибо :)