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




MySQL.RU - Webboard



Вернуться
Получение последних данных на дату (Colobon) 06/01/2009 - 17:11:50
      Re: Получение последних данных на дату (Colobon) 06/01/2009 - 17:13:14
      Re: Получение последних данных на дату (Dark123us) 13/01/2009 - 15:27:44



From: Colobon - 06/01/2009 - 17:11:50
Subject:Получение последних данных на дату
-----------------
Добрый день!
Возможно такой вопрос задавался, ток я не придумал какой вопрос поиску задать...

В общем есть таблица

Table: actions
Fields:
login int,
a_date date,
a_time time,
action varchar(20)

Таблица содержит действия, которые выполнил пользователь с сохранением даты и времени действия.

Нужно получить по всем логинам последние действия, которые они выполнили к скажем 05.01.2009. Нужно помнить, что у некоторых логинов поледнее действие может быть еще в декабре например.

У меня получился такой запрос:
SELECT a.action, a.login
FROM actions AS a
INNER JOIN (
SELECT MAX(a_for_time._time) AS _time, a_for_date._date, a_for_time.login
FROM actions AS a_for_time
INNER JOIN (
SELECT MAX(_date) as _date, login
FROM actions
WHERE _date <= '2009-01-05'
GROUP BY login
) AS a_for_date ON a_for_date._date = a_for_time._date
WHERE a_for_date.login = a_for_time.login
GROUP BY a_for_time.login
) AS a_global ON a_global._date = a._date
WHERE a_global._time = a._date
AND a_global.login = a.login

Но учитывая что в таблице actions записей порядка 6 миллионов, он выполняется чрезвычайно долго.

Может быть есть более простой способ получить желаемое?



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

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

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



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