Туплю с группировками
Код:
SELECT
`p`.`thread_id`,
`p`.`post_id`,
DATE_FORMAT(`p`.`date_posted`, '%d.%m.%Y %H:%i')as`date_posted`,
(
SELECT count(*) FROM `posts` WHERE `thread_id`=`p`.`thread_id`
)as`count`,
`u`.`user_id`,
`u`.`username`
FROM
`posts`as`p`
INNER JOIN
`users`as`u`
USING(`user_id`)
ORDER BY
`date_posted`
DESC
Код:
+-----------+---------+------------------+-------+---------+----------+
| thread_id | post_id | date_posted | count | user_id | username |
+-----------+---------+------------------+-------+---------+----------+
| 2 | 7 | 19.06.2011 17:31 | 3 | 1 | Вася |
| 3 | 6 | 19.06.2011 16:50 | 2 | 2 | Петя |
| 1 | 5 | 19.06.2011 16:07 | 2 | 1 | Вася |
| 2 | 4 | 19.06.2011 16:05 | 3 | 2 | Петя |
| 2 | 3 | 19.06.2011 15:55 | 3 | 2 | Петя |
| 3 | 2 | 19.06.2011 15:55 | 2 | 2 | Петя |
| 1 | 1 | 19.06.2011 15:52 | 2 | 2 | Петя |
+-----------+---------+------------------+-------+---------+----------+
7 rows in set (0.00 sec)
нужно получить уже отсортированные записи с уникальным thread_id
Короче говоря результатом должно выйти:
Код:
+-----------+---------+------------------+-------+---------+----------+
| thread_id | post_id | date_posted | count | user_id | username |
+-----------+---------+------------------+-------+---------+----------+
| 2 | 7 | 19.06.2011 17:31 | 3 | 1 | Вася |
| 3 | 6 | 19.06.2011 16:50 | 2 | 2 | Петя |
| 1 | 5 | 19.06.2011 16:07 | 2 | 1 | Вася |
+-----------+---------+------------------+-------+---------+----------+
можно конечно подзапросами, но хочется найти красивое решение (имхо в это в сторону group by, но пока не сообразил)
upd
хм, вопрос затронул уже троих =)
Цитата:
Сообщение от Pashkela
DISTINCT
|
он отбирает дубликаты по всей выборке, так как значения post_id разные(да и не только оно) то он тут не прокатит, ровно так же как и distinct(`thread_id`)
Цитата:
(18:53:40) xxx: по моему тебе надо тупо добавить group by thread_id
(18:54:15) n0body: =) в таком случае я получу post_id=3,2,1 соответственно
|
upd2. Вопрос решен, спасибо BF и Svet