|
MySQL.RU - Webboard
Вернуться
Помогите плиз составить запрос (Vlad) 15/10/2010 - 02:17:11
Re: Помогите плиз составить запрос (Diter) 15/10/2010 - 17:30:05
Re: Помогите плиз составить запрос (Vlad) 16/10/2010 - 01:52:13
Re: Помогите плиз составить запрос (Diter) 16/10/2010 - 16:50:11
Re: Помогите плиз составить запрос (Vlad) 16/10/2010 - 17:20:30
> Original message text:
> From: Vlad - 15/10/2010 - 02:17:11
> Subject:Помогите плиз составить запрос
> -----------------
> Имеется 2 таблицы: статьи и комментарии.
> Articles:
> | id | title | content |
> Comments:
> | id | article_id | comm_text |
>
> Отношения Articles-Comments один ко многим.
>
> Задача: выбрать первые 10 статей с кол-вом комментариев, где комментариев больше нуля, отсортировать по кол-ву комментариев (по убыванию) затем по id статьи (по убыванию).
>
> Наглядно, в результате мне нужно следующее:
> Result:
> | id | title | total_comments |
> 1
> 2
> 3
> ..
> 10
>
> Важно. Задачу нужно решить одним запросом.
>
> Что-то я совсем запутался. Помогите пожалуйста составить запрос.
>
>
>
From: Vlad - 16/10/2010 - 01:52:13
Subject:Помогите плиз составить запрос
-----------------
Большое человеческое спасибо!
Хочу ещё понять один момент. Если убрать из запроса HAVING total_comments>0, то результат получается точно такой же. Если я правильно понимаю, это из-за условия WHERE a.id=c.article_id, в результате мы получаем только те статьи, где есть хотя бы один комментарий. Я правильно понял?
Если из моей задачи убрать условие - "где комментариев больше нуля", то запрос у меня получился такой:
SELECT a.id, a.title, COUNT(c.id) as total_comments
FROM Articles as a
LEFT JOIN Comments as c ON a.id=c.article_id
GROUP BY a.id
ORDER BY t_news DESC, s.id DESC
LIMIT 10
Вроде работает :)
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
37594
|
|