Регистрация
Вход через соцсети
Восстановление пароля

Подсчёт количества элементов с определёнными рубриками

Новый топик
22.05.2010, 13:15
Ответить | Цитировать
Гость
Гость

Говорю сразу - с движком работаю часа 4. Используется компонент "Объявления". У каждого элемента есть рубрика. Назначается множественным выбором(checkbox), судя по базе данных в таблице MessageXX в поле Rubrika простое перечисление через запятую указанных рубрик, вида ",1,2,3,4,".

На титульной странице необходимо вывести все рубрики, а рядом вывести количество элементов с этой рубрикой. Например: "столы(120) стулья(130) машины(5)"

Как это сделать лучше всего?

По идее для лёгкого поиска должна быть промежуточная таблица связующая элементы и рубрики. Идея делать запрос для каждой рубрики вида "SELECT title,COUNT(*) FROM MessageXX WHERE Rubrika LIKE '%SOME_ID%'" мне не очень нравится. Производительность естественно будет не на высоте.. а промежуточную таблицу я не нашёл

Спасибо!
11.06.2010, 12:07
Ответить | Цитировать
VlastV
qb.digital

Зарегистрирован:
2005-11-02
Сообщений: 202

Код:
SELECT 
*,
COUNT(a.Message_ID)
FROM
Classificator_#NAME# AS c
LEFT JOIN
MessageXX AS a
ON
(a.#FIELD_NAME# REGEXP CONCAT("((,[0-9]+)*),",c.#NAME#_ID, ")((,[0-9]+)*)"))
WHERE
c.Checked = 1
AND
a.Checked = 1
GROUP BY
c.NAME_ID


Разработка сайтов на CMS NetCat. Портфолио http://vlastv.ru/ E-mail: me [at] vlastv [dot] ru ; ICQ: 66117050
198 196 2010-06-11 12:07:19 9957
Описание проекта