SQL: выберите элементы с количеством комментариев И последней датой комментариев - PullRequest
0 голосов
/ 17 декабря 2010

Я хочу отображать элементы с количеством комментариев и датой последнего комментария, каждый элемент.

SELECT item.*, 
  count(comments.itemid) AS commentcount, 
  comments.created AS commentcreated 
FROM table_items AS item 
LEFT JOIN table_comments AS comments ON (comments.itemid = item.id) 
WHERE item.published=1 
GROUP BY item.id 
ORDER BY item.created DESC

Теперь значение комментария - это дата первого комментария: я хочу последний комментарий. Порядок не работает на левое соединение. Как это можно сделать?

1 Ответ

2 голосов
/ 17 декабря 2010

Попробуйте

SELECT item.*, 
  count(comments.itemid) AS commentcount, 
  max(comments.created) AS commentcreated 
FROM table_items AS item 
LEFT JOIN table_comments AS comments ON (comments.itemid = item.id) 
WHERE item.published=1 
GROUP BY item.id 
ORDER BY item.created DESC

Вы должны указать MySQL, какую из дат в группе использовать с max (), min () или одной из других агрегирующих функций.

...