Как выполнить запрос для подсчета значений в иерархическом дереве - PullRequest
0 голосов
/ 06 июня 2019

Прежде всего, английский не мой родной язык. Так что, извините, если сделаете какие-либо ошибки.

Я сделал запрос в MySQL, чтобы найти узлы в таблице дерева иерархии, и нашел что-то вроде этого (Таблица1), например:

Hierarchy1id & EMSP; | Иерархия 2id | Hierarchy3id | Hierarchy4id | Hierarchy5id
1 & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; 2 & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС;

1 & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; 2 & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; 3 & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; 4 & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС;
1 & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; 2 & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; 3 & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; 4 & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; 5 & ​​ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС;

У меня есть другая таблица (Таблица 2), которая связана с Таблицей 1 следующим образом:

Параметры id | ИД иерархии
1 & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; 1 & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС;
2 & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; 2 & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС;
3 & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; 2 & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС;
4 & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; 3 & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС; & ЕПРС;
5 emsp; emsp; emsp; emsp; emsp; emsp; emsp; emsp; * emsp;

Я хочу посчитать, сколько параметров во всех иерархиях из таблицы 1. Как я могу это сделать?

Мой sql для поиска таблицы 1 выглядит так:

ВЫБРАТЬ *
ОТ стола AS t1
& emsp; таблица LEFT JOIN AS t2 ON t2.parent_id = t1.id
& emsp; ЛЕВАЯ ОБЪЕДИНЕННАЯ таблица КАК t3 ВКЛ t3.parent_id = t2.id
& emsp; ЛЕВАЯ ОБЪЕДИНЕННАЯ таблица КАК t4 ВКЛ t4.parent_id = t3.id
& emsp; таблица LEFT JOIN AS t5 ON t5.parent_id = t4.id
ГДЕ t.1 = 1

...