предлагаю SQL-задачку. не надуманная, возникла на работе.

контекст: музыкальный сайт, таблица (mysql) с плейлистами юзера

playlists:
{
int id, //автоинкремент
int song_id, //id самой песни
int user_id, //id юзера, который добавил себе песню
datetime added, //время, когда добавлена песня в его плейлист
}

song_id не уникальны, т.к. песню могли добавить несколько юзеров.

задача: написать SQL для выборки: “последние песни, добавленные в плейлисты пользователей”. для песен нужно вывести кто и когда их добавил в последний раз. дубликаты песен выводить не нужно, если песню добавили два юзера – вывести последнее добавление.

иными словами, нужно выбрать “последние N неповторяющихся песен в плейлистах с указанием того, кто последний и когда её добавил”.

то, что пока придумал я, имеет 4 select’а в запросе и 3й уровень вложенности этих select’ов. сможешь лучше?

P.S. конечно же, должно работать максимально быстро. в наличии есть индекс по added.