2011-11-05 64 views
0

我被困在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命令)

我有一种感觉,解决方案可能很简单,但我不能分解它。

我会很乐意提供任何建议。

谢谢!

+0

当使用'GROUP BY',你不能对值的任何假设任何非分组的列。在你的情况下,当应用'GROUP BY'时,'TITLE'将取得'id_user'这个值的其中一行的值。然后'ORDER BY'子句将应用于生成的分组数据。你不能指定选择哪个'TITLE'。 –

回答

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) 
+0

这工作就像一个魅力!非常感谢你 ;) – Ondrej

相关问题