sql语句是否有问题?

来源:4-13 创建线下会议申请(前端)(二)

qq_慕婉清7021187

2022-07-09

图片描述
我创建测试数据的时候时间跨度写的比较大,我发现两个时间段明明重叠了确依然可以申请成功,然后我去看了searchFreeMeetingRoom方法,我发现这个sql只要当start和end在没有会议的时间段检测不到这个时间段之间有没有会议
图片描述
请问是我理解错老师的意思了吗,还是我哪里代码写错了

写回答

3回答

易28

2022-08-27

sql这个是有bug,我是这么改的可以参考下,如果有问题欢迎指正~~

第一步://img.mukewang.com/szimg/6309d5400996281b16070914.jpg

第二步://img.mukewang.com/szimg/6309d58909b18fab16160889.jpg

第三步://img.mukewang.com/szimg/6309d5af09362bd216560898.jpg

1
1
易28
第三步就是写进mapper里的sql
2022-08-27
共1条回复

慕莱坞0457550

2023-06-14

还真是,可以这样改编下

SELECT temp.name
FROM (
        SELECT mr.`name`, m.id
        FROM tb_meeting_room mr
                 LEFT JOIN tb_meeting m ON mr.`name` = m.place
            AND m.date = #{date}
        AND (
                      (m.`start` BETWEEN #{start} AND #{end}) OR
                      (m.`end` BETWEEN #{start} AND #{end}) OR
                      (#{start} BETWEEN m.`start` AND m.`end`) OR
                      (#{end} BETWEEN m.`start` AND m.`end`)
                  )
    ) temp
WHERE temp.id IS NULL


0
0

神思者

2022-07-09

你导入我的项目试一下

0
1
qq_慕婉清7021187
老师,导入您的项目试过了,也还是有我说的bug
2022-07-09
共1条回复

SpringBoot+Vue3 项目实战,打造企业级在线办公系统

以业务为基础,贯穿前后端技术栈,获得企业级项目开发经验

2231 学习 · 1257 问题

查看课程