Возможно ли такое с GROUP BY ?

Novice

Новичок
Возможно ли такое с GROUP BY ?

Есть таблица tovars со структурой
PHP:
tovar_id(PK)     group_id (FK)
Запрос типа SELECT COUNT(*) as count, tovar_id FROM tovars GROUP BY group_id вернет строки

PHP:
count      tovar_id
2            1
4            3
6            5
чего и следовало ожидать от группировки. Мне понадобилось получить ВЕСЬ список tovar_id с количеством всех товаров, которые имееют такую же группу как и текущий, то есть

PHP:
count      tovar_id
2            1
2            2

4            4
4            6
4            7
4            8

6            5
6            10
6            11
6            12
6            13
6            14
Возможно ли это сделать одним запросом? И если да, то каким?
 

Wicked

Новичок
я не представляю, зачем это может быть нужно...

но пробуй :)
select tovars.*, count(*) from tovars inner join tovars as tovars2 on (tovars.group_id = tovars2.group_id) group by tovars.tovar_id
 

Novice

Новичок
Согласен, мотив странный :)

Да мне просто нужно выводить дерево типа

Ручки (всего 45)
ручка 1
ручка 2
...
ручка 45

Карандаши (всего 15)
карандаш 1
карандаш 2
....
карандаш 15

Чтобы просто не вычислять все это скриптом. Хотя может есть решении и попроще.
 
Сверху