【发布时间】:2016-08-01 11:45:14
【问题描述】:
我觉得这很明显,但我很挣扎。一定是因为今天是星期一。
我在 MySQL 中有一个 licenses 表,其中包含字段 id (int)、start_date (date)、licensable_id (int)、licensable_type (string) 和 fixed_end_point (boolean)。
我想获取开始日期等于或小于今天的所有许可证,将它们按licensable_id and licensable_type 分组,然后获取最近最近开始的一个,这样我就可以获得@987654328 @ 字段,以及 licensable_id 和 licensable_type。
这就是我正在尝试的:
SELECT licensable_id, licensable_type, fixed_end_point
FROM licenses
WHERE start_date <= "2016-08-01"
GROUP BY licensable_id, licensable_type
ORDER BY start_date desc;
目前,ORDER BY 字段似乎被忽略了,它只是返回每个组的第一个许可证中的值,而不是最近的。谁能看到我做错了什么?我需要进行嵌套查询吗?
【问题讨论】:
-
订购方式无效。当 GROUP BY(以及 SELECT DISTINCT 和 UNION 等)仅选择列表项时,可以在 ORDER BY 中指定。
标签: mysql sql group-by sql-order-by