我有两个表,一个是一个时间表,另一个是特定时间块的可用约会列表。我根据日期(第一次查询)来记录一周中的一天
select * from store_schedule where schedule_day = DATE_FORMAT('2011-01-17', '%a')
以上工作正常。
我有第二个查询,其中我获得了约会和特定时间的约会总数
SELECT count(*) from store_appointment a, store_schedule b
where a.store_schedule_id = b.id and apt_date = '2011-01-17'
在我的情况下,我现在在2011/01/17同时有两个约会,使用上述内容准确返回。
我在store_schedule中有一个名为concurrent_times的列,用于确定有多少约会可以在store_appointment中共享相同的store_schedule_id。以下是我的综合查询。
select * from store_schedule where
schedule_day = DATE_FORMAT('2011-01-17', '%a') AND
(SELECT count(*) from store_appointment a, store_schedule b
where a.store_schedule_id = b.id
and apt_date = '2011-01-17') < concurrent_appointments
此查询由于某种原因返回ZERO结果。谁能看到我做错了什么?每个分解的查询都可以正常工作。
答案 0 :(得分:0)
我是个白痴:(。我误解了自己的疑问。我不需要第二个链接到store_schedule。
以下是正确的查询
select *
from store_schedule aa
where schedule_day = DATE_FORMAT('2011-01-17', '%a')
and ((select count(a.id) as countTotal
from store_appointment a
where a.store_schedule_id = aa.id
and apt_date = '2011-01-17') + 0) < concurrent_appointments