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

标签 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 排序的)

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

如果有任何建议,我会很高兴。

谢谢!

最佳答案

试试这个:

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)

关于mysql - 按特定顺序对结果进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8023416/

相关文章:

sql - 使用字母数字和仅字母值的混合对 SQL 中的字母数字列进行排序

php - 在 cakephp 中按字段排序

mysql - 锁的数据库列与 native 锁定函数

php - Unicode字符插入数据库后变成问号

mysql - 对列中的值进行 Group by 子句

postgresql - 条件 ROW NUMBER 或 COMBINE GROUP BY

mysql按距离搜索顺序很慢

php - 建议 : MySQL Database, 使用串联数据作为单行或创建多行

mysql - Kohana框架中得到结果后是否自动关闭数据库连接?

python - Pandas DataFrame Groupby 和改革