Группировка результатов в определенном порядке - PullRequest
0 голосов
/ 06 ноября 2011

Я застрял с запросом MySQL.Сначала я думал, что это будет легкая работа, но она превратилась в то, что я просто не могу преодолеть.

У меня есть таблица, такая как:

ID_USER  ID_LESSON  TITLE
   1        1       Maths
   1        2       Geography
   1        3       History
   2        4       Spanish
   2        5       Maths
   2        6       English

Мне нужнополучить результат, такой как:

ID_USER  ID_LESSON  TITLE
   1        2       Geography
   2        6       English

По сути, мне нужно получить по одной строке для каждого пользователя, где заголовок темы упорядочен по возрастанию.

Я пробовал запрос, подобный

SELECT id_user, id_lesson, title FOM table 
GROUP BY id_user ORDER BY title ASC

Но проблема заключалась в том, что даже если я получил только одну строку для каждого пользователя, заголовок в результате был неправильным (потому что, когда я использовалКоманда GROUP BY, результат был заказан id_lesson)

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

Я буду рад любым предложениям.

Спасибо!

1 Ответ

3 голосов
/ 06 ноября 2011

Попробуйте это:

SELECT t1.* FROM your_table t1
WHERE t1.title = 
    (SELECT title FROM your_table
     WHERE id_user = t1.id_user
     ORDER BY title
     LIMIT 1)
...