【发布时间】:2011-05-04 22:59:51
【问题描述】:
我正在处理一个我无法解决的问题。 假设,我通过一个简单的 MySQL Select 查询得到结果:
SELECT date_from.rights, date_to.rights FROM rights
表rights 保存描述用户需要访问的系统权限的记录。
权限受时间值的限制,显然是 FROM 和 TO。如果 date_from 或 date_to 为 NULL,则权限不受限制(时间方面)。
表权限包含以下数据:
date_from 。 . . . . . . . . date_to
2011-05-20 . . . . . . . . . 2011-08-20
2011-06-20 . . . . . . . . .空
2011 年 3 月 20 日。 . . . . . . . . 2011-04-20
空值 .. 。 . . . . . . . . . . . 2011-01-20
我真正需要的 SELECT 查询是:
date_from 。 . . . . . . . . date_to
2011-05-20 . . . . . . . . .空
2011 年 3 月 20 日。 . . . . . . . . 2011-04-20
空值 .. 。 . . . . . . . . . . . 2011-01-20
希望你明白我的意思。我只需要对结果进行分组,以便在每个日期值相交的地方获得尽可能广泛的限时权限;)
我认为,GROUP BY 子句应该可以完成这项工作,但我就是找不到正确的公式。如果可能的话,我也想避免使用程序。
【问题讨论】:
-
您的 2 个“表”或您需要 SQL 查询执行的操作的示例不足以描述您的问题。请回答以下问题: 1. 您的表架构是什么? (表上有哪些字段)和 2. 给出一些示例数据和 3. 结果集应该是什么样子?
标签: mysql sql group-by date-range