我正在尝试编写一个 SQL 查询,该查询必须检查两个小时之间是否存在重叠以及是否已经选择了某些值。例如,你在一个表中有一条记录,你需要用数据填充一个表单。使用 SQL 查询,您需要检查表中的小时数与您在表单中选择的小时数之间是否存在重叠,但您还需要检查表中选择的其他数据是否尚未在表中使用与表中的另一个数据。我的问题是检查值是否已经在表中,这样我就可以返回一个错误,指出这些数据已被使用。明确地说,您有那些需要验证的数据。你有时间、房间、老师和课程。您必须检查是否检测到时间重叠(我对这部分没问题),但您还需要检查老师是否已经在某个房间里教授某门课程(您不能让老师在两个不同的地方),如果一个房间还没有被占用,也如果一门课程还没有被占用。我实际上有这个 SQL 查询,但它不是一个正确的查询,因为当我用两个小时(例如:08:00 和 12:00)、一个老师(例如:老师 A)、一个房间(例如:房间 A)进行插入时和课程(例如:课程 A),没有问题,因为它是表中的第一个插入。但是当我在不换老师的情况下换房间(A房间到B房间)检查是否会报错(因为老师不能同时在两个不同的地方),有' 没有错误,并且在表中进行了插入。我会给你我的 SQL 查询:
select * from `reservations`
where heure_debut <= '08:00' and heure_fin >= '08:00'
and heure_debut <= '09:00' and heure_fin >= '09:00'
and reservations.local_id = 1
and exists
(select * from `reservations` where reservations.enseignant_id = 1)
and exists
(select * from `reservations` where reservations.Event_id = 1)
我试图了解我失败的地方,但我不知道在哪里。预先感谢您的回答。
精慕HU
长风秋雁
随时随地看视频慕课网APP