SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 05.01.2012 16:11:17

spark95
Участник
Зарегистрирован: 05.01.2012
Сообщений: 3

Ограничение на количество записей в группе.

Здравствуйте. У меня есть таблица с новостями сайта. Мне для модуля нужна выборка n  последних новостей, причём по одной новости с каждой категории. Id категории называется catid.
У новостей мне нужны такие столбцы: id, title, introtext. Для новостей должно соблюдаться правило published=1 и сортировка ORDER BY publish_up DESC.
Напишите пожалуйста необходимый запрос.

Отредактированно spark95 (05.01.2012 16:58:07)

Неактивен

 

#2 05.01.2012 18:40:54

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Ограничение на количество записей в группе.

Если две последних добавленых новости из одной категории имеют одинаковую дату, то обязательно, чтобы выбралась только одна из них или допустимо, что будут выбраны обе?

Неактивен

 

#3 05.01.2012 22:20:12

spark95
Участник
Зарегистрирован: 05.01.2012
Сообщений: 3

Re: Ограничение на количество записей в группе.

Нет, только одна. вероятность одинаковой даты практически 0. Это брать в расчёт не нужно.

Неактивен

 

#4 05.01.2012 23:21:20

spark95
Участник
Зарегистрирован: 05.01.2012
Сообщений: 3

Re: Ограничение на количество записей в группе.

PS Дата имеет вид: 2012-01-05 11:41:07, так что совпадение исключено.

Неактивен

 

#5 05.01.2012 23:49:31

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Ограничение на количество записей в группе.

Что мешает двум новостям иметь совпадающие до секунды даты? Другой вопрос, что вероятность этого невелика.
Ниже приведенный запрос отдаст больше одной записи в случае совпадения даты

select t2.id, t2.title, t2.introtext from
(select catid, max(`поле, содержащее дату добавления`) as mdate from `таблица` where published=1 group by 1) t1
join `таблица` t2 on t2.`поле, содержащее дату добавления`=t1.mdate and t1.catid=t2.catid and t2.published=1 ORDER BY t2.publish_up DESC;

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson