Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Выборка по двум таблицам к MySQL

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

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, это оставшеесф свободное время по всем пользователям.  
 
 
Но, кажется, я мыслю неправильно. Подскажите, как лучше сделать запрос!  
 

Всего записей: 15 | Зарегистр. 08-05-2004 | Отправлено: 14:43 31-05-2004
SiMM

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Arisha, может ты наконец-то возьмёшься за ум и попытаешься почитать книжки, мануалы & etc? Ответ я тебе уже где-то дал - не нужна там временная таблица - просто формируй запрос по другому.

Всего записей: 2302 | Зарегистр. 14-05-2004 | Отправлено: 14:46 31-05-2004
Arisha

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Почему же не нужна?
 
Даже если выбрать все записи, при которых, как ты написал, login != 'qwerty', то может получиться, что какая-то из записей совпадет с записью когда login = 'qwerty'. А этого как раз не надо.
 
Мне кажется, надо сначала создать временную таблицу записей 'qwerty', а потом выбрать записи, не совпадающие с 'qwerty'.
 
И не надо оскорблять других людей, откуда ты знаешь читаю я мануалы или нет. Или ты хочешь сказать, что там есть ответ на мой вопрос? Если ты, в отличие от меня, так хорошо зазубрил мануалы, то может кинешь ссылочку -где же это?

Всего записей: 15 | Зарегистр. 08-05-2004 | Отправлено: 14:53 31-05-2004 | Исправлено: Arisha, 14:54 31-05-2004
beeos



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Даже если выбрать все записи, при которых, как ты написал, login != 'qwerty', то может получиться, что какая-то из записей совпадет с записью когда login = 'qwerty'

Это как???

Всего записей: 329 | Зарегистр. 06-01-2004 | Отправлено: 15:02 31-05-2004
Arisha

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ну, допустим, у 'qwerty' есть запись:
 
'qwerty', '2004-05-31 12:00:00', '2004-05-31 13:00:00'
 
Я провожу поиск - мне надо найти записи, чтоб не совпадали даты с теми, что у 'qwerty'
 
Если я сделаю выборку, как предложил SiMM:
 
SELECT start_date, end_date
FROM E
WHERE NOT (
login = 'qwerty' AND start_date
BETWEEN date_1 AND date_2 AND end_date
BETWEEN date_1 AND date_2
)
 
то в результат могут войти такие строки:
 
'duda', '2004-05-31 12:00:00', '2004-05-31 13:00:00'
'ruda', '2004-05-31 12:00:00', '2004-05-31 13:00:00'
 
Потому что хоть login != 'qwerty', но даты такие же. А мне нужно, чтоб даты были НЕ КАК у 'qwerty'
 

Всего записей: 15 | Зарегистр. 08-05-2004 | Отправлено: 15:11 31-05-2004
Mamay



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ариша - тебе дали верный совет
SiMM

Цитата:
может ты наконец-то возьмёшься за ум и попытаешься почитать книжки, мануалы & etc

Нарой в инете хоть тогоже Грубера...
И почитай!

Всего записей: 1352 | Зарегистр. 03-09-2002 | Отправлено: 10:57 01-06-2004
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » Выборка по двум таблицам к MySQL


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

LiteCoin: LgY72v35StJhV2xbt8CpxbQ9gFY6jwZ67r

Рейтинг.ru