Цитата: xray84 ➤ насчет вьюхи supermag.svcardtreesplit: используя ее не все карточки выходят..только некоторые! например у меня группа FOOD имеет TREE= '63.', результат простой выборки пустая таблица (select c.article, c.name, sp.tree from supermag.smcard c , supermag.svcardtreesplit sp where c.idclass = sp.id and sp.tree = '63.'). Где то может еще есть вьюшка где все все есть разделы карточек?
условие неверное. так выходят только карточки, которые лежат в самой группе FOOD, но не в её подгруппах. строго говоря, в группе с подгруппами карточек вообще не надо бы иметь. на них можно иногда извилины узлом заявязать, пока поймешь, почему количество карточек в группе не совпадает с суммарным количеством карточек в подгруппах. правильнее всего считать такое размещение карточек в группе ошибкой.
варианты правильных условий:
Код:
-- дерево начинается с подходящей группы первого уровня.
-- точку в группе считайте для такого условия ОБЯЗАТЕЛЬНОЙ.
-- иначе по запросу типа sp.tree like '1%' отберутся и группа '1.' и группы '11.', '12.', '13.',... , '145.',... - всё, что начинается с единицы.
select c.article, c.name, sp.tree
from supermag.smcard c, supermag.svcardtreesplit sp
where c.idclass = sp.id
and sp.tree like '63.%'
Код:
-- svcardtreesplit удобен тем, что разбирает классификатор по уровням.
-- в данном случае указываем, что группа первого уровня именно 63.,
-- а дальше может быть (или не быть) что угодно.
-- мы проверяем только первый уровень классификатора.
select c.article, c.name, sp.tree
from supermag.smcard c, supermag.svcardtreesplit sp
where c.idclass = sp.id
and sp.Item1 = '63.'