Задавайте вопросы, мы ответим
Вы не зашли.
В общем есть две таблицы - рубрики и фирмы. Рубрики связаны с фирмами связью многие ко многим(через таблицу). У рубрики есть поле регион. Надо с помощью одного запроса вывести ид рубрики, и поле которое будет включать в себя ид региона и счетчики фирм для каждого региона. Все что у меня получилось:
SELECT react_id, GROUP_CONCAT(count_region) FROM (
SELECT rubric.react_id AS react_id,region COUNT(region) AS count_region
FROM rubric, firm, relations
WHERE 1
AND firm.react_id = relations.react
AND rubric.react_id = relations.object
GROUP by rubric.react_id, region
) firms
GROUP BY react_id
Дальше знаний не хватает. Может кто знает какие-то новшества?
Отредактированно palesika2002 (25.05.2010 19:43:24)
Неактивен
Если я правильно понял вашу мысль, то:
Неактивен
То, что смущает сразу, — WHERE 1 и FROM firm. Ни то, ни другое не нужно.
Особенно второе, т.к. его оптимизатор не выкинет.
Потом несколько смущает организация данных — регион к рубрике не отно-
сится обычно, это независимый словарик. Если это осмысленная денорма-
лизация, то, возможно, она не очень удачная. Я бы регион в relations воткнул.
Он туда по смыслу хорошо встраивается, ну и запрос будет на порядок проще.
Если же организацию данных брать as-is, то да, как-то так. Наверное, еще
где-то CONCAT пропустили, если словесное описание запроса правильное.
Неактивен