Mysql 可以通过两个时间戳进行排序,并将同一行显示两次
我正在考虑创建一个时间表解决方案。 我有一个任务表,看起来像 区域1项目1开始时间结束时间Mysql 可以通过两个时间戳进行排序,并将同一行显示两次,mysql,timetable,time-tracking,Mysql,Timetable,Time Tracking,我正在考虑创建一个时间表解决方案。 我有一个任务表,看起来像 区域1项目1开始时间结束时间 区域1项目1开始时间结束时间 我希望创建一个显示,在这里我可以查看接下来发生的事情,无论是endTime还是startTime i、 e 纽卡斯尔16:45 18:45 纽卡斯尔2 17:45 19:45 将输出 纽卡斯尔16:45 纽卡斯尔17:45 纽卡斯尔18:45 纽卡斯尔19:45 更重要的是,我想检测时间是开始时间还是结束时间,我必须为每个活动输入两行(时间、区域、项目、开始|结束)。我可以创
区域1项目1开始时间结束时间 我希望创建一个显示,在这里我可以查看接下来发生的事情,无论是endTime还是startTime i、 e 纽卡斯尔16:45 18:45
纽卡斯尔2 17:45 19:45 将输出 纽卡斯尔16:45
纽卡斯尔17:45
纽卡斯尔18:45
纽卡斯尔19:45
更重要的是,我想检测时间是开始时间还是结束时间,我必须为每个活动输入两行(时间、区域、项目、开始|结束)。我可以创建两行的接口。我只是想知道是否有更好的解决办法 您可以有一个带有
- 身份证
- 时间
- 类型(开始或结束)
- 事件详细信息id
- 身份证
- 描述
从事件左侧选择时间、类型、描述加入event.details\u id=event\u details.id按时间排序
这将为您提供所需的输出
如果您想在每一行中获得开始和结束时间的输出,那么您需要使用现有架构执行类似以下操作:
选择event\u details.description,min(time)作为开始,max(time)作为结束,从event left加入event\u details on event.details\u id=event\u details.id按事件\u details分组,此查询应适用于以下情况:
SELECT * FROM
((SELECT Area, Item, startTime AS eventTime FROM tasks)
UNION
(SELECT Area, Item, endTime FROM tasks)) AS t
ORDER BY eventTime
基本上,您选择的是所有开始时间,然后是结束时间,然后对它们进行排序。完全忘记了联合。非常感谢。