







|
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,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
34846
|
|