2011-01-20 3 views
0

У меня есть две таблицы, одна из них - другая, другая - список доступных встреч для определенных временных блоков. Я беру время на день недели по дате (Первый запрос)Сравнение подзапросов, не возвращающее результаты

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, который точно вернувшись с использованием вышеизложенного.

У меня есть столбец под названием concurrent_times в моем store_schedule, чтобы определить, сколько встреч может совместно использовать тот же store_schedule_id в store_prointment. Ниже приведен мой комбинированный запрос.

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

Я идиот :(. Я неправильно понял мои собственные запросы. Я не нужна вторая ссылка на 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 
Смежные вопросы