Допустим, у нас есть одна таблица с 3 столбцами: ID , PARENT_ID и VALUE .
У нас есть, например, 8 записей :
ID PARENT_ID VALUE
A NULL 1
B A 1
C B 0
D C 1
E D 1
F E 1
G F 1
H G 0
Как мы можем проверить, используя запрос SQL или хранимую процедуру (предпочтительно для MySQL), если какая-либо из родительских записей для записи с идентификатором «G» имеет значение 0? Если у родителя из цепочки есть 0 для VALUE, нет необходимости проверять еще раз.
Это должно сработать, взяв любой дочерний ID и просматривая всю цепочку его родителей до этот ребенок. У какого-то ребенка может не быть родителей или цепочка родителей, а в родительской записи может быть 0 или несколько дочерних записей.
В этом примере поиск заканчивается в записи с идентификатором "C" ( ie: вернуть этот идентификатор в порядке), поскольку это родительская запись цепочки родителей (для G), которая равна 0 для VALUE.