Грамотная выборка mysql. Вопрос знактокам

12
S
На сайте с 14.04.2008
Offline
60
#11
Miracle:
я думаю это просто опечатка.

Не понял?

10 не понял

NS
На сайте с 30.09.2008
Offline
54
#12

Запросы такого вида называются топ из группы.

http://www.artfulsoftware.com/infotree/queries.php?&bw=1275#104

Ниже таблица для примера, и запрос (выдаст 2 самые поздние из каждой группы)


CREATE TABLE `article` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`cdate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`dep_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=402 DEFAULT CHARSET=latin1
CREATE TABLE `dep` (
`id` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

SELECT
a.id,
a.dep_id,
a.cdate,
count(a1.id) AS ca
FROM
article a
JOIN
article a1
ON a1.dep_id=a.dep_id
AND a1.cdate >=a.cdate
GROUP BY a.dep_id,a.cdate
HAVING ca <= 2;

P.S. Выбирая самые новые статьи, наверно надо опираться на дату, а не айдишник(возраст же по номеру паспорт не определяют).

dvaes
На сайте с 03.09.2007
Offline
65
#13
nonSmoker:
возраст же по номеру паспорт не определяют

так величина номера не связана с датой рождения

если дата ставится автоматом при создании статьи, почему она должна идти не параллельно id?

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий