У меня есть таблица, которая имеет следующие столбцы: id, text, parentid
. И когда строка является корневым элементом (не имеет родительского элемента), то parentid = 0
.Реализация какого-то простого цикла в SQLite
Что я хочу сделать, это найти text
первого корня (корень корня из ... корня элемента) определенного элемента.
Вот пример:
SELECT parentid FROM cat WHERE id = 1234 --returns 1120
SELECT parentid FROM cat WHERE id = 1120 --returns 1011
SELECT parentid FROM cat WHERE id = 1011 --returns 0. So this the first root.
SELECT text FROM cat WHERE id = 1011 --returns what I want.
Я знаю, что это легко можно с петлями, но я использую sqlite
, который не поддерживает петли.
Итак, вопрос в том, есть ли способ реализовать это в sqlite
без использования каких-либо других скриптов?
Вы можете использовать [рекурсивное ОТВ] (http://sqlite.org/lang_with.html) – Blorgbeard
@Blorgbeard Я не могу Понимаете, как это работает. Не могли бы вы объяснить это немного подробнее и опубликовать его в качестве ответа? –
К сожалению, в этом примере что-то не так. (Последний запрос, номер должен быть 1101 не 1120) Я только что отредактировал его. –