获取当天或首次出现的时间表

时间:2018-04-24 22:40:54

标签: mysql where-clause

我正在构建一个计划应用程序,我将计划分配给某些成员,但这些计划可以在特定日期更改或分配给将来。

我的数据库结构如下:

members table:
------------------------------------
member_id


schedule table:
------------------------------------
schedule_id
schedule_name


assigned_schedules asch table:
------------------------------------
member_id
schedule_id
effective_from
effective_to

assigned_toassigned_from值是一个unix时间戳。我目前已经加入了表格但是我的where子句非常多余并且有错误。我希望获得当前为会员当天分配的时间表,或者如果将来分配了一个,则为最接近的分配时间表。会员可以将日程安排分配给将来的日期,并且会在那时更改,但我正在寻找每日视图。

目前,我加入所有表并使用where子句(其中?是今天的时间戳):

( asch.effective_from <= ? AND ( asch.effective_to IS NULL OR asch.effective_to >= ? ) OR asch.effective_from IS NULL ) XOR ( ( asch.effective_from > ? AND asch.effective_to IS NULL ) XOR asch.effective_from > ? )

assigned_to值可以为null,这意味着计划没有终止时间。

我查询成员表,并在members.member_id = assigned_schedules.member_id上加入assigned_schedules,并在asiggned_schedules.schedule_id = schedule.schedule_id上​​加入日程表

0 个答案:

没有答案