SQL-рекурсив в той же таблице для поиска родителя - PullRequest
3 голосов
/ 16 февраля 2012

Как я могу найти parentId всех моих товаров (mySQL)?(потенциально существует бесконечное количество уровней иерархии ... не лучший дизайн, но это то, с чем я работаю)

ID      PARENTID    NAME
9146    NULL        thing1
9147    NULL        thing2
9148    9146        thing3
9149    9148        thing4
9150    NULL        thing5
9151    9149        thing6
9152    9147        thing7

Выходные данные должны быть:

ID     REAL_PARENTID
9146   NULL (or self 9146)
9147   NULL (or self 9147)
9148   9146
9149   9146
9150   NULL (or self 9150)
9151   9146
9152   9147

Ответы [ 2 ]

1 голос
/ 16 февраля 2012

Я фактически написал сценарий обхода дерева, используя программирование хранимых процедур MySQL.

Я ответил на такой вопрос в DBA StackExchange еще 24 октября 2011 года .Он также включал образцы данных.

Веселитесь вместе с ним.

0 голосов
/ 16 февраля 2012

Это легко сделать с помощью таблиц SQL CTE (рекурсивные запросы)

Проверьте это, чтобы узнать, как это сделать:

http://msdn.microsoft.com/en-us/library/ms186243.aspx

...