Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Выборка значений из таблицы с несколькими уровнями вложенности
|
|||
|---|---|---|---|
|
#18+
Добрый день, Прошу помочь по возможности. Имеется: 1. Таблица со списком товаров (id_товара, id_class, т.е. группы к которой товар относится) 2. Таблица классификаторов (id_class, id_parent_class), где id_parent_class - ссылка на такой же id_class (той же таблицы), т.е. группа более высокого уровня). Количество вложений групп одну в другу - произвольное. Необходимо сделать выборку следующего вида: Товар, Группа (в которую непосредственно входит товар), Главная группа (группа самого верхнего уровня, у которой id_parent_class равен Null). Сделал через временную таблицу с последующим перебором (cursor), где для каждой группы ищется циклом ее группа "верхнего уровня". Но т.к. товаров много - получается долго. Возможно, есть другие способы? Среда: SQL2008. Заранее благодарю за ответы по существу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2021, 21:36 |
|
||
|
Выборка значений из таблицы с несколькими уровнями вложенности
|
|||
|---|---|---|---|
|
#18+
Задача на рекурсию? СТЕ в 2008-ом уже есть. Хорошо бы что бы Вы пояснили вопрос примером и примерным результатом. PS Для больших объёмов будет долго. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2021, 21:55 |
|
||
|
Выборка значений из таблицы с несколькими уровнями вложенности
|
|||
|---|---|---|---|
|
#18+
SIMPLicity_, Таблица 1 (товары): Код: plaintext 1. 2. 3. 4. 5. 6. 7. Таблица 2 (группы) Код: plaintext 1. 2. 3. 4. 5. Результирующая таблица: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 5-я группа принадлежит 3-й, которая, в свою очередь, принадлежит 1-й. Т.о. в результирующей таблице, в третьем столбце должны быть представлены группы самого верхнего уровня. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2021, 22:13 |
|
||
|
Выборка значений из таблицы с несколькими уровнями вложенности
|
|||
|---|---|---|---|
|
#18+
Sviman144, я бы использовал тип hierarchyid, по нему голова быстро находится, если проиндексировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2021, 23:09 |
|
||
|
Выборка значений из таблицы с несколькими уровнями вложенности
|
|||
|---|---|---|---|
|
#18+
Sviman144 Сделал через временную таблицу с последующим перебором (cursor), где для каждой группы ищется циклом ее группа "верхнего уровня". Но т.к. товаров много - получается долго . Возможно, есть другие способы? Перепишите свою процедуру (хоть курсором, хоть CTE) так чтобы на основании Таблицы 2 она формировала таблицу (набор данных) вида id_grpid_head1122314251 То есть Группа и её Главная группа. Таблица групп у вас маленькая - работать будет быстро. И потом эту таблицу джоините с товарами - и сразу получаетет результат в нужном виде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2021, 00:43 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=40050879&tid=1685006]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 257ms |
| total: | 367ms |

| 0 / 0 |
