MySQL - выбор оператора, порядок по количеству комментариев на статью - PullRequest
2 голосов
/ 10 февраля 2010

Привет, я хотел бы сделать что-то вроде следующего:

SELECT * FROM tbl_article
JOIN tbl_comments ON tbl_article.id = tbl_comments.article_id
ORDER BY COUNT(tbl_comments.article_id)

Кто-нибудь может подсказать, как мне заставить это работать?

Ответы [ 2 ]

4 голосов
/ 10 февраля 2010

Это должно сделать работу:

SELECT 
    tbl_article.*, COUNT(tbl_comments.article_id) as total_comments
FROM 
    tbl_article
LEFT JOIN 
    tbl_comments ON tbl_comments.article_id = tbl_article.id
GROUP BY 
    tbl_article.id
ORDER BY 
    COUNT(tbl_comments.article_id)
1 голос
/ 10 февраля 2010
SELECT * FROM
(
  SELECT tbl_article.id, COUNT(tbl_comments.id) AS CommentCount FROM tbl_article
  LEFT OUTER JOIN tbl_comments ON tbl_article.id = tbl_comments.article_id
  GROUP BY tbl_article.id
) ra
ORDER BY CommentCount DESC

РЕДАКТИРОВАТЬ: я изменил тип соединения. Статьи должны появляться независимо от того, есть ли у них соответствующие записи в таблице комментариев. Мы также сейчас группируемся по полю id в таблице статей.

...