mysql - sql GROUP BY 产生语法错误

标签 mysql sql

我无法理解这个查询有什么问题。它不断产生语法错误。非常感谢。

SELECT 
    `employees`.`ID`, `employees`.`LNAME`, `employees`.`FNAME`, `employees`.`MINIT`, 
    `leave_app`.`ID`, `leave_app`.`CONTROL_NUM`, `leave_app`.`DATE_FILED`,
    `leave_app`.`DATE_FROM`, `leave_app`.`DATE_TO`, `leave_app`.`TYPE`, 
    `leave_app`.`EMP_FK`
FROM employees
LEFT JOIN `trackr_pgso`.`leave_app` ON `employees`.`ID` = `leave_app`.`EMP_FK`
ORDER BY `employees`.`ID` ASC
GROUP BY `employees`.`ID`
LIMIT 0 , 30

我有这样的东西:

1|  6/7/2014
1|  6/30/2014
1|  7/1/2014
2|  6/15/2014
3|  6/29/2014

我想要的是这样的:

1|  6/7/2014
    6/30/2014
    7/1/2014
2|  6/15/2014
3|  6/29/2014

最佳答案

您必须将 order by 子句放在 group by 子句之后:

SELECT `employees`.`ID` , `employees`.`LNAME` , `employees`.`FNAME` , `employees`.`MINIT` , `leave_app`.`ID` , `leave_app`.`CONTROL_NUM` , `leave_app`.`DATE_FILED` , `leave_app`.`DATE_FROM` , `leave_app`.`DATE_TO` , `leave_app`.`TYPE` , `leave_app`.`EMP_FK`
FROM employees
LEFT JOIN `trackr_pgso`.`leave_app` ON `employees`.`ID` = `leave_app`.`EMP_FK`
GROUP BY `employees`.`ID`
ORDER BY `employees`.`ID` ASC
LIMIT 0 , 30

您必须先分组,然后订购

这是来自 Mysql documentation 的语法:

SELECT
    [ALL | DISTINCT | DISTINCTROW ]
      [HIGH_PRIORITY]
      [STRAIGHT_JOIN]
      [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
      [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
    select_expr [, select_expr ...]
    [FROM table_references
    [WHERE where_condition]
    [GROUP BY {col_name | expr | position}
      [ASC | DESC], ... [WITH ROLLUP]]
    [HAVING where_condition]
    [ORDER BY {col_name | expr | position}
      [ASC | DESC], ...]
    [LIMIT {[offset,] row_count | row_count OFFSET offset}]
    [PROCEDURE procedure_name(argument_list)]
    [INTO OUTFILE 'file_name' export_options
      | INTO DUMPFILE 'file_name'
      | INTO var_name [, var_name]]
    [FOR UPDATE | LOCK IN SHARE MODE]]

关于mysql - sql GROUP BY 产生语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24546999/

相关文章:

mysql - 无法连接到mysql远程

MySQL - 根据子查询的顺序对结果进行排序

mysql - 跨多个联接表的 SQL 查询

php - 新手MySQL和php的问题

java - 无法将条目放入mysql数据库

MYSQL - 简单的插入后触发器不会触发

sql - 使用 PostgreSQL 删除行重复并获得最高值

java - Hibernate 查询比较中的法语字符问题

sql - 两列去重

mysql - 如何在 hibernate 中使用 LIMIT 进行更新查询?