ВЫБЕРИТЕ последние 15 загрузок пользователем, но с уникальными именами файлов - PullRequest
2 голосов
/ 25 августа 2011

БД mySQL. Это таблица журнала загрузок. Пользователь может загрузить один и тот же файл более одного раза.

Я хочу выбрать последние 15 уникальных загрузок файлов данным пользователем.

Так что, если пользователи последние X загрузок:

UserA, file001, 14.52
UserA, file006, 14.49
UserA, file001, 14.43-Duplicate

Я хочу выбрать последние x загрузок, но там, где имя файла уникально, поэтому:

UserA, file001, 14.52
UserA, file006, 14.49

У меня есть код, чтобы выбрать последние 15 загрузок, но я не знаю, как применить группу к / 1011 * JUST столбцу fileName:

SELECT `fileName`,`time` FROM `downloads`
WHERE `userName` = 'userA' 
ORDER BY `time` DESC
LIMIT 15

Итак, как мне убедиться, что возвращаются только уникальные имена файлов?

Ответы [ 2 ]

4 голосов
/ 25 августа 2011
SELECT `fileName`,MAX(`time`) 
FROM `downloads`
WHERE `userName` = 'userA' 
GROUP BY `fileName`
ORDER BY MAX(`time`) DESC
LIMIT 15

A GROUP BY на fileName с MAX на время (чтобы получить последний раз, чтобы получить первый раз, используйте MIN)достаточно.

0 голосов
/ 25 августа 2011

тебя волнует время?

В противном случае, вы можете попробовать

SELECT `fileName`,`time` FROM `downloads`
WHERE `userName` = 'userA' 
GROUP BY `fileName`
ORDER BY `time` DESC
LIMIT 15
...