按特定顺序对结果进行分组

时间:2011-11-05 21:29:30

标签: mysql group-by sql-order-by

我遇到了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 个答案:

答案 0 :(得分:3)

试试这个:

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)