Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Проблема выбора из базы по дате (Рустем Рамазанов) 21/04/2006 - 18:19:44
      Re: Проблема выбора из базы по дате (Dinky) 21/04/2006 - 19:55:15
      Re: Проблема выбора из базы по дате (Рустем Рамазанов) 22/04/2006 - 09:21:08
      Re: Проблема выбора из базы по дате (DiGiTAL) 26/04/2006 - 20:27:20

> Original message text:
> From: Рустем Рамазанов - 21/04/2006 - 18:19:44
> Subject:Проблема выбора из базы по дате
> -----------------
> Есть таблица Stud с полями id-номер студента, Data-дата смены группы, Gr-номер группы.
> Нужно выбрать всех студентов и их группы на определенную дату. Например в базе такие данные:
> id| Data |Gr
> 02|2005-11-22|00
> 02|2005-07-31|24
> То есть студент с 2005-07-31 был в группе 24, но 2005-11-22 был отчислен и если делать запрос на сегодняшнюю дату – в результатах его быть не должно.
> Пробую использовать такой запрос:
> SELECT *
> FROM Stud
> WHERE Data<=’2006-04-20’
> GROUP BY id
> ORDER BY Data DESC
> но он выдает строчку ‘02|2005-07-31|24’.
> Использование вложенного запроса дает правильный результат, но
> работает намного медленнее (в базе 40000 строк):
> SELECT Stud.id, (SELECT * FROM Stud AS P WHERE P.id=Stud.id AND P.Data<='2006-04-20' ORDER BY P.Data DESC LIMIT 1)
> FROM Stud
> GROUP BY id
> ORDER BY Data DESC
> Неужели такую задачу невозможно реализовать одним запросом?
>
>


From: Dinky - 21/04/2006 - 19:55:15
Subject:Проблема выбора из базы по дате
-----------------
а че, вложенным запросом нормально, только я бы его во FROM перенес, чтоб оптимизатору легче было и добавил бы индекс на поле Data

--
Dmitry



[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
27513



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |