子查询比较不返回结果

时间:2011-01-20 18:01:34

标签: mysql subquery

我有两个表,一个是一个时间表,另一个是特定时间块的可用约会列表。我根据日期(第一次查询)来记录一周中的一天

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结果。谁能看到我做错了什么?每个分解的查询都可以正常工作。

1 个答案:

答案 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