Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.01.2011, 14:36   #1
sergeyrulit
Пользователь
 
Регистрация: 12.05.2010
Сообщений: 53
По умолчанию Выбрать из базы.

Есть вот такая таблица:


Из нее нужно выбрать только те link'и который уже 3 дня не отстукивались в базу.

Допустим сегодня 2011-01-31, нужно выбрать те линки, которые после 2011-01-28 не разу не отстукивались (подходит линк etot.ru).

Реально такой запрос сделать?
sergeyrulit вне форума Ответить с цитированием
Старый 31.01.2011, 16:20   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

реально, конечно.
причём, несложно.
Только работа с датой немного отличается в разных СУБД.
У Вас какая СУБД ?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 31.01.2011, 16:54   #3
sergeyrulit
Пользователь
 
Регистрация: 12.05.2010
Сообщений: 53
По умолчанию

mysql, заранее спс.
sergeyrulit вне форума Ответить с цитированием
Старый 01.02.2011, 05:37   #4
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Код:
Select * from table_name Where date <  ( curdate() - INTERVAL 3 day)
table_name тут конечно должно быть имя вашей таблицы. И переименуйте поля count и date вообще не стоит называеть объекты базы (будь то поля таблицы, индексы, хранимые процедуры и тп) словами типа date, min, max, varchar в общем зарезервироваными словами

Последний раз редактировалось vovk; 01.02.2011 в 05:53.
vovk вне форума Ответить с цитированием
Старый 01.02.2011, 07:53   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
У Вас какая СУБД ?
На всякий случай - Автор представил скрин с странички PhpMyAdmin Как раз для Мускула из пакетов типа Denver или UniServer
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.02.2011, 13:48   #6
sergeyrulit
Пользователь
 
Регистрация: 12.05.2010
Сообщений: 53
По умолчанию

Цитата:
Сообщение от vovk Посмотреть сообщение
Код:
Select * from table_name Where date <  ( curdate() - INTERVAL 3 day)
table_name тут конечно должно быть имя вашей таблицы. И переименуйте поля count и date вообще не стоит называеть объекты базы (будь то поля таблицы, индексы, хранимые процедуры и тп) словами типа date, min, max, varchar в общем зарезервироваными словами
Спасибо, но не совсем то, есть еще одно условие. Нужно выбрать не только что меньше текущей даты на 3. Но и что бы в эти 3 дня этих линков не было в базе.

Допустим из всей таблице (см. первый пост) подходит только etot.ru т.к. дата у него меньше чем сегодня на 3 и более дня, и не существует других записей с этим линком в числах: 2011-02-01, 2011-01-31, 2011-01-30. Сорри что так плохо объясняю, не знаю как еще сказать)).
sergeyrulit вне форума Ответить с цитированием
Старый 01.02.2011, 14:08   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

sergeyrulit, тёзка, главное, инструмент у тебя в руках.
достаточно правильно его применить и получишь решение!
вложенные запросы есть в вашей версии MySQL ?
попробуйте так:
Код:
select link from table_name 
  Where link not in 
   (select link from table_name where date >=  ( curdate() - INTERVAL 3 day))

если отработает, тогда можно или в начале запроса после select DISTINCT применить,
либо в конце GROUP BY link дописать.

Последний раз редактировалось Serge_Bliznykov; 01.02.2011 в 14:10.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 01.02.2011, 14:09   #8
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Код:
Select link from table_name Group by link Having max(date) <  ( curdate() - INTERVAL 3 day)
vovk вне форума Ответить с цитированием
Старый 01.02.2011, 14:11   #9
sergeyrulit
Пользователь
 
Регистрация: 12.05.2010
Сообщений: 53
По умолчанию

Serge_Bliznykov, работает

Спасибо всем большое!

upd: vovk, твой код тоже работает. спс.
sergeyrulit вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
предстоит выбрать jaguar8989 Помощь студентам 1 29.10.2010 03:44
Что бы выбрать? Sparky Свободное общение 7 30.06.2010 00:39
Выбрать ОС Интересующаяся26 Операционные системы общие вопросы 8 02.10.2009 17:46
Открытие Базы, Перенос базы ke6ko БД в Delphi 1 10.07.2009 08:05