【发布时间】:2009-08-19 23:37:32
【问题描述】:
我目前有 3 张桌子,供人们预订某些设备。
这是我的桌子:
tblEquipment:
id name description
1 Camera Takes pictures
2 Projector Projects pictures
3 Laptop Portable Computer
tblEvents:
id start end first_name last_name email
1 2009-08-10 2009-08-11 John Doe jd@email.com
2 2009-08-15 2009-08-16 Jane Doe jd@email.com
tblEventData:
id eventID equipmentID
1 1 1
2 1 2
现在,用户将提交一个带有他们请求时间的查询,然后他们将看到所有可用的设备。
因此,使用上面的示例,如果用户在 8/10-8/11 之间寻找设备,他将看到唯一可用的设备是:设备 ID 3(笔记本电脑)。
如何创建查询以根据请求的时间仅返回可用设备?
这是我迄今为止想出的,但无法让它发挥作用:
SELECT tblequipment.id as name, tblEvents.start as start, tblEvents.end as end
FROM tblEquipment
INNER JOIN tblEventData on tblEventData.equipmentID = tblEquipment.id
INNER JOIN tblEvents on tbleventdata.eventID = tblEvents.id
WHERE NOT EXISTS(SELECT * FROM tblEvents WHERE $end >= start AND $start <= end)
有什么想法吗?谢谢!
【问题讨论】: