我正在努力根据存储在单独表中的可用性从位置表(例如酒店)中选择记录。为避免每个可能的日期/地点组合都有大量可用性记录,可用性表仅保存给定日期有限或无可用性的记录 - 因此缺少匹配记录意味着存在完整可用性。
表格有点像...
locations: id, name, maxRooms etc.
availability: locationID, date, roomsAvailable( an integer from zero meaning no availability to maxRooms)
...我需要做的是选择所有在给定日期期间有空位的地点。这意味着他们要么没有匹配的可用性记录(即完全可用),要么匹配的 availability.roomsAvailable 记录的总和大于零。
我只是想解释这个就头疼了:-(任何想法都感激地收到......
最佳答案
SELECT locations.id FROM locations LEFT JOIN availability
ON( locations.id = availability.locationID AND
( availability.roomsAvailable > 0 OR ISNULL( availability.locationID ) ) )
关于MySQL根据记录的总和查询一个表或在另一张表中没有记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6944452/