|
|
|
| Добрый день.
Имеется таблица комментариев со следующими полями:
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 мне не подходит, так как я здесь привел не полный запрос и в нем на самом деле еще присутствуют подзапросы которые достают название темы для каждого комментария из таблицы тем
Помогите разобраться. | |
|
|
|
|
|
|
|
для: frm
(27.09.2011 в 18:10)
| | в таблице что только 3 поля?
если честно не до конца понятно задание, и эти ваши подзапросы тоже не мешало бы озвучить | |
|
|
|
|
|
|
|
для: 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
|
пробуйте | |
|
|
|