Arisha
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Здравствуйте, подскажите, пожалуйста, как правильно оформит запрос. Кажется, что я делаю что-то неверно. Вот моя задача: 1. В таблице Е хранятся записи пользователей как в ежедневнике: login, start_date, end_date, event 2. Инициатор login='qwerty' хочет узнать, когда остальные пользователи свободны, т.е. у них в таблице нет записей в течение периода: now() до date_add(now(),interval N day) = [period] 3. Мои идеи были таковы: 3.1. Найти записи инициатора в течение периода N - значит тогда он занят - сделала временную таблицу: Код: create temporary table t1 as select start_date,end_date from E where login='qwerty' and start_date between [period] and end_date between [period]; 3.2. Теперь надо найти записи пользователей, которые НЕ совпадают с записями инициатора - тогда остальные пользователи заняты. Код: select e.start_date,e.end_date from e,t1 where e.login != t1.login and not( e.start_date between t1.start_date and t1.end_date) and not(e.end_date between t1.start_date and t1.end_date) and e.start_date between [period] and e.end_date between [period]; 3.3. Остается найти время в течение [period], когда НЕ результаты из 3.2, это оставшеесф свободное время по всем пользователям. Но, кажется, я мыслю неправильно. Подскажите, как лучше сделать запрос! |