2011-11-05 35 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

相關問題