Ваш вопрос не четко определен - когда вы говорите, что вам нужны также другие данные из той же строки, вы не определяете, какая строка.
Вы говорите, что вам нужно упорядочить результаты по created_at
, поэтомуЯ предположу , что вы хотите, чтобы значения из строки имели минимальное значение created_at
(самое раннее).
Теперь это становится одним из наиболее распространенных вопросов SQL - получение строк, содержащих какое-либо статистическое значение (MIN, MAX).
Например,
SELECT user_id, MIN(created_at) AS created_at
FROM creations
GROUP BY user_id
ORDER BY MIN(create_at)
LIMIT 20
Этот подход не позволит вам (легко) выбрать другие значения из той же строки.
Один подход, который позволитВы выбираете другие значения
SELECT c.user_id, c.created_at, c.other_columns
FROM creations c LEFT JOIN creation c_help
ON c.user_id = c_help.user_id AND c.created_at > c_help.create_at
WHERE c_help IS NULL
ORDER BY c.created_at
LIMIT 20