SQL-запрос для отношений отцов и детей

Исключение нулевого указателя генерируется, когда приложение пытается использовать null в случае, когда требуется объект. К ним относятся:

  1. Вызов метода экземпляра объекта null.
  2. Доступ или изменение поля объекта null.
  3. Принимая длину null, как если бы это был массив.
  4. Доступ или изменение слотов null, как если бы это был массив.
  5. Бросок null как будто это было значение Throwable.

Приложения должны бросать экземпляры этого класса, чтобы указать на другие незаконные использования объекта null.

Ссылка: http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html

13
задан Smandoli 11 July 2014 в 13:17
поделиться

3 ответа

with [CTE] as (
    select * from [TheTable] c where c.[ParentId] = 1
    union all
    select * from [CTE] p, [TheTable] c where c.[ParentId] = p.[NodeId]
)
select * from [CTE]
10
ответ дан 1 December 2019 в 22:41
поделиться

Необходимо изучить использование Вложенной Модели Набора для отношений отцов и детей в базе данных SQL. Это намного более хорошо, чем попытка сохранить порожденные из записей в таблице как это и делает запросы как это намного легче.

6
ответ дан 1 December 2019 в 22:41
поделиться

И просто чтобы убедиться, что он работает, если он сам является родителем (в противном случае он будет рекурсивно повторяться, пока не сломается):

   with [CTE] as (
        select * from [TheTable] c where c.[ParentId] = 1
        union all
        select * from [CTE] p, [TheTable] c where c.[ParentId] = p.[NodeId]
        and c.[ParentId] <> c.[NodeId]
    )
    select * from [CTE]
4
ответ дан 1 December 2019 в 22:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: