Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> sql запрос 
V
    Опции темы
del3d
Дата 2.6.2010, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 13.11.2007

Репутация: нет
Всего: нет



Имеется таблица
Код

CREATE TABLE `users` (
  `id` int(11) auto_increment,
  `f_name` varchar(255) NOT NULL,
  `s_name` varchar(255) NOT NULL,
  `email` varchar(255) default NULL,
  `login` varchar(255) NOT NULL,
  `pass` varchar(255) NOT NULL,
  `date_modify` date default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

В таблице хранится информация о пользователях.
Если пользователь меняет фамилию, то старая запись остается и добавляется новая, в которой новые данные, но логин остается прежним.
Тем самым сохраняется история изменений.
В `date_modify` записывается дата изменения данных. 
+----+--------------------+------------------------+------------------------+-------+-------------+
| id | f_name             | s_name                 | email                  | login | date_modify |
+----+--------------------+------------------------+------------------------+-------+-------------+
|  1 | Сергей             | Иванов                 | [email protected]        | admin | 2008-05-01  |
|  2 | Валентина          | Курочкина              | [email protected]          | zed   | 2008-05-06  |
|  3 | Оксана             | Петрова                | [email protected]            | a123  | 2008-05-06  |
|  4 | Оксана             | Мухина                 | [email protected]            | a123  | 2009-06-12  |
|  5 | Иван               | Косов                  | [email protected]           | typ   | 2007-08-25  |
+----+--------------------+------------------------+------------------------+-------+-------------+

Т.е. Петрова Оксана поменяла фамилию на Мухину.
Как написать запрос, показывающий всех пользователей, но только каждого - один раз, с последними изменениями?
+----+--------------------+------------------------+------------------------+-------+-------------+
| id | f_name             | s_name                 | email                  | login | date_modify |
+----+--------------------+------------------------+------------------------+-------+-------------+
|  1 | Виталий            | Иванов                 | [email protected]        | admin | 2008-05-01  |
|  2 | Валентина          | Курочкин               | [email protected]          | zed   | 2008-05-06  |
|  4 | Оксана             | Мухина                 | [email protected]            | a123  | 2009-06-12  |
|  5 | Иван               | Косов                  | [email protected]           | typ   | 2007-08-25  |
+----+--------------------+------------------------+------------------------+-------+-------------+

Есть мысль, но работает не так..
Код

SELECT `s_name`, `login`, max(`date_modify`) FROM `users` GROUP BY `login`;


Это сообщение отредактировал(а) del3d - 2.6.2010, 21:49
PM MAIL   Вверх
Akina
Дата 2.6.2010, 23:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Код

select t1.*
from users t1
inner join
(
  select login, max(date_modify) dm
  from users
  group by login
) t2
on t1.login = t2.login
and t1.date_modify = t2.dm;



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
del3d
Дата 2.6.2010, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 13.11.2007

Репутация: нет
Всего: нет



Akina, спасибо большое.. 2-й раз выручаешь... по одному и тому же вопросу..
вот моя же аналогичная тема
Только что нашел..
Я до этого проект делал, потом забросил, а сейчас опять начал.. и наткнулся на те же грабли..

Еще раз спасибо и извиняюсь за повторение..

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0428 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.