Простой запрос, но не работает

grey109

Новичок
Простой запрос, но не работает

Сама БД:

CREATE TABLE IF NOT EXISTS `texts` (
`date` date NOT NULL default '0000-00-00',
`view` int(8) unsigned NOT NULL default '0'
PRIMARY KEY (`date`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

INSERT INTO `texts` (`date`, `views`) VALUES
('2007-07-15', 3),
('2007-07-16', 1),
('2007-07-18', 1),
('2010-08-29', 658),
('2010-08-31', 944),
('2010-08-30', 696);


Мне нужно получить минимальное количество значение поля views за последние 3 дня. Простой запрос, но не работает как надо:

select min(views) from `texts` order by date desc limit 3

возвращает 1, а должен 658.


Что я упустил?
 

iceman

говнокодер
PHP:
select min(t.views) from (
   select x.views from  texts as x order by x.date desc limit 3
) as t
 

lart

Guest
Потому что минимальное значение в таблице 1 а не 658. В даном случае limit 3 ограничивает количество строк в результате выборки (хотя при таком запросе, в любом случае она бдет одна). А что бы выбрать за последние три дня нужно условие по полю date
SELECT min(views) FROM texts WHERE date> SUBDATE(NOW(),INTERVAL 3 DAY)
 
Сверху