Mysql 返回在“从左联接开始”列中具有连续值的数据库行的计数
我有两张桌子。Mysql 返回在“从左联接开始”列中具有连续值的数据库行的计数,mysql,count,left-join,Mysql,Count,Left Join,我有两张桌子。 可用性和时隙。availabilities表有一个time\u slot\u id列时间槽仅以15分钟的间隔保存一天24小时的所有时间。它有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。我需要找出可用性,它的时隙是连续的,与
可用性
和时隙
。availabilities
表有一个time\u slot\u id
列<代码>时间槽仅以15分钟的间隔保存一天24小时的所有时间。它有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),该计数每次都可能不同。这个变量数将取决于一些用户导入,但我只需要知道如何确保我有足够的可用性来覆盖该计数
非常感谢您的帮助。您可以尝试添加SqlFiddle之类的内容?