У меня есть таблица базы данных «Категория», которая может иметь собственную ссылку.Если self-ссылка равна нулю, то это категория верхнего уровня (без родителя).Если он указывает на другую категорию, это подкатегория данной категории.
Теперь я пытаюсь настроить запрос, который возвращает все подкатегории с указанным идентификатором родительской категории.Примерно так (синтаксис Android Room):
"SELECT * FROM category WHERE parent_id = :parentId"
Этот запрос ничего не возвращает, если parentId == null, но я бы хотел, чтобы он возвращал все категории, где parentId == null (т.е. категории верхнего уровня).С запросом
"SELECT * FROM category WHERE parent_id IS NULL"
я могу получить родительские категории успешно, но, очевидно, это не работает для подкатегорий.
Я пробовал также следующий запрос
"SELECT * FROM category WHERE (parent_id IS NULL OR parent_id = :parentId)
, ноКонечно, это не удается, поскольку он всегда возвращает категории верхнего уровня, хотя намерение состоит в том, чтобы получить только определенный набор подкатегорий.
Мой вопрос заключается в том, как настроить запрос так, чтобы он работал так, как ожидалось., т.е. возвращает все категории верхнего уровня, когда parentId == null, в противном случае он возвращает все подкатегории данного идентификатора категории.