SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 22.07.2015 22:38:44

Pavel
Участник
Зарегистрирован: 19.07.2015
Сообщений: 8

Заполнение таблицы данными из нее же

Здравствуйте.
Смысл моей задачи в следующем. У меня есть таблица с деревом, заданным полями "ID", "ID_parent" "level". Еще в ней есть пустое поле "path", которое мне нужно заполнить по следующему алгоритму: берем поле "path" родителя и добавляем к нему ID через слеш. Так что в итоге получится:

entity_id     parent_id   path          level
1               1              1              1
2               1              1/2           2
3               1              1/3           2
4               2              1/2/4        3
5               4              1/2/4/5     4

level уже заполнено. Я реализовал так:

UPDATE catalog_category_entity AS t1
JOIN catalog_category_entity AS t2
ON (t1.entity_id = t2.parent_id AND t2.entity_id>1)
SET t2.path = CONCAT(t1.path, "/", t2.entity_id)

Но порядок прохождения строк хаотичен и когда алгоритм доходит до потомка раньще чем до его родителя, то в path записывается только "/entity_id" потому что у родителя path еще пустой. Как воплотить?
Спасибо.

Неактивен

 

#2 23.07.2015 15:38:07

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5829

Re: Заполнение таблицы данными из нее же

create temporary table t
select .., t2.path = CONCAT(t1.path, "/", t2.entity_id) as path
from catalog_category_entity AS t1
JOIN catalog_category_entity AS t2
ON (t1.entity_id = t2.parent_id AND t2.entity_id>1)
order by t1.parent_id;

UPDATE catalog_category_entity ... ;

drop temparary table t;

Неактивен

 

#3 24.07.2015 09:05:09

Pavel
Участник
Зарегистрирован: 19.07.2015
Сообщений: 8

Re: Заполнение таблицы данными из нее же

Спасибо за ответ, а что символизируют точки? А то я в MySQL еще не силен и не догадался (

Неактивен

 

#4 24.07.2015 12:45:10

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5829

Re: Заполнение таблицы данными из нее же

пропущенные части запроса.

Неактивен

 

#5 24.07.2015 15:42:19

Pavel
Участник
Зарегистрирован: 19.07.2015
Сообщений: 8

Re: Заполнение таблицы данными из нее же

Смешно. А что там пропущено?

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson