powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Найти из всех строк где дата максимальная.
26 сообщений из 26, показаны все 2 страниц
Найти из всех строк где дата максимальная.
    #33297192
Lesorub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Очень вроде простой вопрос но нифига не догоню как сделать.
Может мускул старый (3.23.51)?

Пишу так:
Код: plaintext
1.
2.
3.
4.
SELECT date, user_id 
	FROM board_data d 
	WHERE parent_tree_id= 436  
GROUP by user_id
Having date=Max(date)

Выдает 2 строчки (хотя даты разные). :(
...
Рейтинг: 0 / 0
Найти из всех строк где дата максимальная.
    #33297196
Lesorub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Забыл написать.. в таблице всего пока что 2 строчки :)
...
Рейтинг: 0 / 0
Найти из всех строк где дата максимальная.
    #33297517
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во-первых, date - это зарезервированное слово в MySQL, и именование полей таким способом - плохая практика.

Во-вторых, выложите пожалуйста тестовые данные, включая структуру таблицы, чтобы не гадать на кофейной гуще.
...
Рейтинг: 0 / 0
Найти из всех строк где дата максимальная.
    #33297546
Lesorub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Совершенно с вами согласен что не надо так именовать. :)
Но это пока тестовая таблица и данные.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
CREATE TABLE `board_data` (
  `id` bigint( 20 ) unsigned NOT NULL auto_increment,
  `parent_tree_id` bigint( 20 ) unsigned NOT NULL default '0',
  `title` varchar( 255 ) NOT NULL default '',
  `date` datetime default NULL,
  `user_id` varchar( 100 ) NOT NULL default '',
  PRIMARY KEY  (`id`),
  UNIQUE KEY `id` (`ord`),
  KEY `id_2` (`parent_tree_id`)
) TYPE=MyISAM;

INSERT INTO board_data VALUES("28", "256", "LesNick", "2005-09-08 18:44:49", "guest");
INSERT INTO board_data VALUES("35", "256", "SoCool", "2005-09-14 10:29:27", "guest");
INSERT INTO board_data VALUES("72", "436", "Перв нах", "2005-09-29 22:33:45", "LesNick");
INSERT INTO board_data VALUES("73", "436", "Втор на", "2005-09-29 22:44:38", "!root");

Вот.. подкоротил немного.
...
Рейтинг: 0 / 0
Найти из всех строк где дата максимальная.
    #33298121
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
alter table board_data change date dtime datetime;

SELECT dtime, user_id 
  FROM board_data
 WHERE dtime=(SELECT max(dtime) 
	      FROM board_data 
              WHERE parent_tree_id= 436 )
...
Рейтинг: 0 / 0
Найти из всех строк где дата максимальная.
    #33298716
Дмитрич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Berkut
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
alter table board_data change date dtime datetime;

SELECT dtime, user_id 
  FROM board_data
 WHERE dtime=(SELECT max(dtime) 
	      FROM board_data 
              WHERE parent_tree_id= 436 )
Подзапрос не прокатит. Версия старая
Lesorub Может мускул старый (3.23.51)?
...
Рейтинг: 0 / 0
Найти из всех строк где дата максимальная.
    #33298793
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДмитричПодзапрос не прокатит. Версия старая
Lesorub Может мускул старый (3.23.51)?
Написал на скорую руку. То, что может не прокатить, согласен. :)

А в чем прикол, когда в первом варианте автора две записи в выборку попадает, я не знаю.
...
Рейтинг: 0 / 0
Найти из всех строк где дата максимальная.
    #33298851
Astron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BerkutВо-первых, date - это зарезервированное слово в MySQL, и именование полей таким способом - плохая практика.


Ну, это вы зря про него так, он и не такое может :-)
Код: plaintext
1.
2.
3.
4.
mysql> use astron
Database changed
mysql> create table date (date int);
Query OK,  0  rows affected ( 0 . 11  sec)
...
Рейтинг: 0 / 0
Найти из всех строк где дата максимальная.
    #33298869
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AstronНу, это вы зря про него так, он и не такое может :-)
Оригинально! :)
...
Рейтинг: 0 / 0
Найти из всех строк где дата максимальная.
    #33298882
Lesorub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Т.е. правильно ли я понимаю. Что на этой старой версии мускуля это (т.е. выбрать строку с максимальной датой) нереализуемо? Нереализуемо в одном запросе (без Limit)?
...
Рейтинг: 0 / 0
Найти из всех строк где дата максимальная.
    #33298883
Дмитрич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LesorubОчень вроде простой вопрос но нифига не догоню как сделать.
Может мускул старый (3.23.51)?

Пишу так:
Код: plaintext
1.
2.
3.
4.
SELECT date, user_id 
	FROM board_data d 
	WHERE parent_tree_id= 436  
GROUP by user_id
Having date=Max(date)

Выдает 2 строчки (хотя даты разные). :(
вот эти строки он и выдает...

date user_id"2005-09-29 22:33:45""LesNick" "2005-09-29 22:44:38" "!root"
разве нет???
...
Рейтинг: 0 / 0
Найти из всех строк где дата максимальная.
    #33298891
Lesorub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да. Эти и выдает. Но я хочу только одну с максимальной датой (без LIMIT).
...
Рейтинг: 0 / 0
Найти из всех строк где дата максимальная.
    #33298900
Дмитрич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что-то я HAVING не нашел в BOL MySQL. он там есть вообще???
...
Рейтинг: 0 / 0
Найти из всех строк где дата максимальная.
    #33298909
Дмитрич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорри, нашел уже.
...
Рейтинг: 0 / 0
Найти из всех строк где дата максимальная.
    #33299357
ap99ap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LesorubДа. Эти и выдает. Но я хочу только одну с максимальной датой (без LIMIT).

Читай про LIMIT
...
Рейтинг: 0 / 0
Найти из всех строк где дата максимальная.
    #33299615
Lesorub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Очень интересный ответ разрезе того что я просил подсказать как сделать БЕЗ LIMIT
...
Рейтинг: 0 / 0
Найти из всех строк где дата максимальная.
    #33299913
Lesorub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так это... без вариантов чтоли? Т.е. без LIMIT вообще никак?
...
Рейтинг: 0 / 0
Найти из всех строк где дата максимальная.
    #33299942
Lesorub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тогда скажите, пожалуйста, с какой версии будет работать следующий запрос:
Код: plaintext
1.
2.
3.
4.
SELECT dtime, user_id 
  FROM board_data
 WHERE dtime=(SELECT max(dtime) 
      FROM board_data 
              WHERE parent_tree_id= 436 )
...
Рейтинг: 0 / 0
Найти из всех строк где дата максимальная.
    #33299949
Lesorub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ага.. нашел.. Работает с версиии 4.1 :(
Мдя.. у хостера 4.0.15
...
Рейтинг: 0 / 0
Найти из всех строк где дата максимальная.
    #33299973
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стоп-стоп, с использованием LIMIT в 3.23 никаких особых ограничений нету, 3.23 не поддерживает объединения и подзапросы.
...
Рейтинг: 0 / 0
Найти из всех строк где дата максимальная.
    #33300001
Lesorub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Наоборот.. мне надо БЕЗ использования LIMIT.
...
Рейтинг: 0 / 0
Найти из всех строк где дата максимальная.
    #33300004
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а так не прокатит?
Код: plaintext
1.
2.
SELECT max(`date`), user_id 
	FROM board_data d 
	WHERE parent_tree_id= 436 
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm
...
Рейтинг: 0 / 0
Найти из всех строк где дата максимальная.
    #33300010
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LesorubНаоборот.. мне надо БЕЗ использования LIMIT.
Странное какое-то требование... Почему?
...
Рейтинг: 0 / 0
Найти из всех строк где дата максимальная.
    #33300088
Lesorub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хочу сделать это частью другого более сложного запроса.
...
Рейтинг: 0 / 0
Найти из всех строк где дата максимальная.
    #33300170
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Учитывая, что в 3.23 нет ни подзапросов, ни объединений, вряд ли кто-то даст вам запрос такого плана, который можно будет "сделать частью другого, более сложного запроса". Так что или говорите, что именно вы хотите сделать, или придётся как-нибудь так...
...
Рейтинг: 0 / 0
Найти из всех строк где дата максимальная.
    #33300182
Lesorub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Постараюсь сформулировать и в течении дня отписать.
...
Рейтинг: 0 / 0
26 сообщений из 26, показаны все 2 страниц
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Найти из всех строк где дата максимальная.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]