Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Запрос с group by оставил frm
 
 автор: frm   (27.09.2011 в 18:10)   письмо автору
 
 

Добрый день.
Имеется таблица комментариев со следующими полями:
id int primary key not null,
id_diss int not null,
date datetime
В поле id_diss содержаться идентификаторы тем к которым относятся комментарии, таким образом в этом поле значения не уникальны и могут повторяться. Мне нужно достать 5 последних комментариев из этой таблицы так чтобы все они относились к разным темам, т.е. по одному последнему комментарию из каждой темы. Для этого я использовал следующий запрос:
SELECT
*
FROM
Comment
GROUP BY
id_diss
ORDER BY
date DESC
LIMIT
5
Но проблема в том что таким образом я не могу достать пять последних комментариев из разных тем, так как group by отсекает лишние комментарии до того как происходит сортировка по дате и в результате я в самом деле получаю пять комментариев из разных тем, но сами комментарии в этих темах не являются последними по дате.
Вариант с DISTINCT мне не подходит, так как я здесь привел не полный запрос и в нем на самом деле еще присутствуют подзапросы которые достают название темы для каждого комментария из таблицы тем
Помогите разобраться.

  Ответить  
 
 автор: Valick   (27.09.2011 в 19:32)   письмо автору
 
   для: frm   (27.09.2011 в 18:10)
 

в таблице что только 3 поля?
если честно не до конца понятно задание, и эти ваши подзапросы тоже не мешало бы озвучить

  Ответить  
 
 автор: Valick   (27.09.2011 в 19:51)   письмо автору
 
   для: frm   (27.09.2011 в 18:10)
 

SELECT *
  FROM
    (SELECT *
     FROM Comment
     GROUP BY id_diss
     ORDER BY id_diss, date DESC)
  ORDER BY RAND()
  LIMIT 5

пробуйте

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования