我有两张table。 availabilities
以及 time_slots
. 这个 availabilities
表有一个 time_slot_id
列。 time_slots
只需以15分钟的间隔保存一天24小时的所有时间。是的 from
, to
,和 sequence
柱。里面有数据,看起来像这样。 |from |to |sequence |00:00:00 |00:15:00 |0 |00:15:00 |00:30:00 |1 |00:30:00 |00:45:00 |2 |00:45:00 |01:00:00 |3
一路走到午夜,序列增加1。我需要找出可用性,它的时隙是连续的,相邻的时隙在两边,然后计算连续可用性的数量。到目前为止,我有下面的这个查询,它让我找出了所有具有连续时间段的可用性,但无法计算出如何计算它们。
SELECT a1.date, ts1.sequence, ts1.from, ts1.to
FROM availabilities a1
LEFT JOIN time_slots ts1 ON a1.time_slot_id = ts1.id
WHERE EXISTS (SELECT *
FROM availabilities a2
LEFT JOIN time_slots ts2 ON a2.time_slot_id = ts2.id
WHERE ts1.sequence IN (ts2.sequence - 1, ts2.sequence + 1)
)
完全有可能存在多组顺序可用性,因此只需确保至少一组顺序可用性大于某个计数(例如3),该计数每次都可能不同。这个变量的数量将取决于一些用户导入,但我只需要知道如何确保我有足够的可用性,以涵盖该计数。
非常感谢您的帮助。
暂无答案!
目前还没有任何答案,快来回答吧!