Хорошо, система баз данных может выполнить запрос несколькими разными способами с одинаковым результатом, но вот один из способов понять, что происходит:
Возьмите 2 копии таблицы nested_category, одну с именем parent и другую с именем node. Найдите строку в parent с именем ELECTRONICS (статья, на которую вы ссылаетесь, подразумевает, что есть только одна). Диапазон parent.lft to parent.rgt дает любые узлы с ELECTRONICS в качестве предка в дереве на любой глубине.
Сортировка по node.lft означает, что сначала вы получите подузлы ELECTRONICS вдоль левой стороны поддерева, в обходе предварительного заказа .
Возможно, будет проще пройти простой пример, чтобы понять это: что если мы выберем ТЕЛЕВИДЕНИЯ вместо ЭЛЕКТРОНИКИ в качестве родителя:
Родительский набор содержит только 1 строку из-за [parent.name = 'TELEVISIONS']:
{ name: "TELEVISIONS", lft: 2, rgt: 9 }
В наборе 'node' есть 4 строки, которые удовлетворяют [node.lft между 2 и 9], потому что мы можем заменить одиночные значения lft / rgt из parent:
{ name: "TELEVISIONS", lft: 2, rgt: 9 }
{ name: "TUBE", lft: 3, rgt: 4 }
{ name: "LCD", lft: 5, rgt: 6 }
{ name: "PLASMA", lft: 7, rgt: 8 }
И, как вы можете видеть, вышеупомянутые 4 строки уже отсортированы по значениям "lft", поэтому для удовлетворения запроса мы просто берем значения имени и все готово.