Отличается сложным sql-запросом

У меня есть еще один для вас, ребята. Я искал вокруг, но я не могу понять причину этой проблемы.

В принципе, я хочу сделать DISTINCT на user_id, который представляет собой столбец, который естественно соединяется и существует в таблицах «user» и «leaderboard_entry».

Это мой оригинальный запрос, который отлично работает, но я бы хотел отфильтровать дубликаты и показать только первый самый быстрый счет пользователя. Внутренний запрос в основном захватывает 100 из последних строк, а внешний запрос использует их по возрастанию leaderboard_entry_elapsed_time_ms.

  set @ t1 = 0;  выберите из 
 ( 
    выберите @ t1: = @ t1 + 1 в качестве leaderboard_entry_youngness_rank, 1- @ t1 / 100 as 
      leaderboard_entry_youngness_based_on_expiry, 
    leaderboard_entry. *, 
    NOW () - leaderboard_entry_timestamp как leaderboard_entry_age_in_some_units, 
    TO_DAYS (NOW ()) - TO_DAYS (leaderboard_entry_timestamp) 
      как leaderboard_entry_age_in_days, leaderboard.leaderboard_quiz_mode, 
    leaderboard.leaderboard_load_key, 
    user.user_name 
    from leaderboard_entry 
    естественное соединение
    Лидеры 
    естественное соединение 
    пользователь
    где 
    (leaderboard_load_key = 'es-en-animals-1' 
    или leaderboard_load_key = '-es-en-animals-1') 
    и leaderboard_quiz_mode = '0'
    порядок по leaderboard_entry_age_in_some_units asc, 
      leaderboard_entry_timestamp ограничение по возрастанию 0, 100 
 ) как external_temp 
 Сортировать по 
   leaderboard_entry_elapsed_time_ms asc, 
   leaderboard_entry_timestamp asc 
 предел 0, 50

Я пробовал следующее, которое удаляет «leaderboard_entry. *» И добавляет ключевое слово DISTINCT таким образом с явным указанием имен столбцов, которые мне нужны:

  set @ t1 = 0;  выберите из 
 ( 
    выберите @ t1: = @ t1 + 1 в качестве leaderboard_entry_youngness_rank, 1- @ t1 / 100 as 
      leaderboard_entry_youngness_based_on_expiry, 

NOW () – leaderboard_entry_timestamp как leaderboard_entry_age_in_some_units,
TO_DAYS (NOW ()) – TO_DAYS (leaderboard_entry_timestamp)
как leaderboard_entry_age_in_days, leaderboard.leaderboard_quiz_mode,
leaderboard.leaderboard_load_key,
user.user_name

отличный leaderboard_entry.user_id,
leaderboard_entry.leaderboard_entry_id,
leaderboard_entry.leaderboard_id,
leaderboard_entry.leaderboard_entry_timestamp,
leaderboard_entry.leaderboard_entry_elapsed_time_ms,

from leaderboard_entry
естественное соединение
Лидеры
естественное соединение
пользователь
где
(leaderboard_load_key = 'es-en-animals-1'
или leaderboard_load_key = '-es-en-animals-1')
и leaderboard_quiz_mode = '0'
порядок по leaderboard_entry_age_in_some_units asc,
leaderboard_entry_timestamp ограничение по возрастанию 0, 100
) как external_temp
Сортировать по
leaderboard_entry_elapsed_time_ms asc,
leaderboard_entry_timestamp asc
предел 0, 50

Но я получаю эту ошибку, и это не имеет смысла … 🙁

  # 1064 - У вас есть ошибка в синтаксисе SQL; 
 проверьте руководство, соответствующее вашему MySQL 
 версия сервера для правильного синтаксиса для использования рядом 
 'different leaderboard_entry.user_id, leaderboard_entry.leaderboard_entry_id,' 
 на линии 12

Любая помощь очень ценится! свинья

Solutions Collecting From Web of "Отличается сложным sql-запросом"