Сравнение подзапросов не возвращает результатов - PullRequest
0 голосов
/ 20 января 2011

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

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_appointment. Ниже мой комбинированный запрос.

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

Этот запрос по некоторым причинам возвращает НУЛЬНЫЕ результаты. Кто-нибудь может увидеть, что я делаю не так? Каждый разбитый запрос работает нормально.

1 Ответ

0 голосов
/ 20 января 2011

Я идиот :(. Я неправильно прочитал свои собственные запросы. Мне не нужна вторая ссылка на 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 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...