我正在考虑创建一个时间表解决方案。 我有一个看起来像
的任务表区域1项目1 startTime结束时间
区域1 item1 startTime endTime
我希望创建一个显示器,我可以在其中查看接下来发生的事情,无论是endTime还是startTime
即
纽卡斯尔卷轴16:45 18:45
纽卡斯尔reel2 17:45 19:45
会输出
纽卡斯尔卷轴16:45
纽卡斯尔卷轴17:45
纽卡斯尔卷轴18:45
纽卡斯尔卷轴19:45
更多的是,我想检测时间是startTime还是endTime,我必须为每个活动输入两行(时间,区域,项目,开始|结束)。我可以创建两行的接口。我只是想知道是否有更好的解决方案。
答案 0 :(得分:0)
你可以拥有一个带
的事件表以及带有
的事件详细信息表然后,您可以执行select time, type, description from event left join event_details on event.details_id = event_details.id order by time
。
这应该可以提供所需的输出。
如果您想在每行中获得包含开始和结束时间的输出,那么您需要执行select event_details.description, min(time) as start, max(time) as end from event left join event_details on event.details_id = event_details.id group by event_details.description
之类的操作。
答案 1 :(得分:0)
使用现有架构,此查询应该有效:
SELECT * FROM
((SELECT Area, Item, startTime AS eventTime FROM tasks)
UNION
(SELECT Area, Item, endTime FROM tasks)) AS t
ORDER BY eventTime
基本上,您选择所有开始时间,然后选择结束时间,然后对它们进行排序。