Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Получить данные в виде иерархии  [new]
SQLcoder
Member

Откуда:
Сообщений: 14
Доброго времени суток, форумчане, подскажите пожалуйста, как при помощи SQL запроса получить данные в виде такой иерархии:
{
guid: 0000-0000-0000,
title: "Заголовок",
groups:[
{id: 1,title: "Группа1", items: [
{id:10,title:"Элемент"},
{id:11,title:"Элемент"},
{id:12,title:"Элемент"},
{id:13,title:"Элемент"}
]},
{id: 2,title: "Группа2, items: [
{id:14,title:"Элемент"},
{id:15,title:"Элемент"},
{id:16,title:"Элемент"},
{id:17,title:"Элемент"}
]},
{id: 3,title: "Группа3", items: [
{id:18,title:"Элемент"},
{id:19,title:"Элемент"},
{id:20,title:"Элемент"},
{id:21,title:"Элемент"}
]}
]
}
11 авг 17, 14:17    [20716908]     Ответить | Цитировать Сообщить модератору
 Re: Получить данные в виде иерархии  [new]
SQLcoder
Member

Откуда:
Сообщений: 14
Заголовок хранится в одной таблице, группы и элементы во второй, элементы с группами связаны полем ParentId
11 авг 17, 14:19    [20716914]     Ответить | Цитировать Сообщить модератору
 Re: Получить данные в виде иерархии  [new]
SQLcoder
Member

Откуда:
Сообщений: 14
Необходимо получить RootObject:
public class RootObject
{
public Guid qid { get; set; }
public string qtitle { get; set; }
public Group[] groups { get; set; }
}

public class Group
{
public int gid { get; set; }
public string gtitle { get; set; }
public Answer[] answers { get; set; }

}

public class Answer
{
public int aid { get; set; }
public string atitle { get; set; }
}
11 авг 17, 14:25    [20716941]     Ответить | Цитировать Сообщить модератору
 Re: Получить данные в виде иерархии  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3667
SQLcoder
Заголовок хранится в одной таблице, группы и элементы во второй, элементы с группами связаны полем ParentId


структуру таблиц не показали, видимо секретные
11 авг 17, 16:37    [20717411]     Ответить | Цитировать Сообщить модератору
 Re: Получить данные в виде иерархии  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
SQLcoder
Заголовок хранится в одной таблице, группы и элементы во второй, элементы с группами связаны полем ParentId

а в одной совсем нельзя?
11 авг 17, 16:43    [20717424]     Ответить | Цитировать Сообщить модератору
 Re: Получить данные в виде иерархии  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7658
SQLcoder,

MS SQL - реляционная СУБД. Получить иерархические данные можно только в виде XML документа.
11 авг 17, 17:23    [20717514]     Ответить | Цитировать Сообщить модератору
 Re: Получить данные в виде иерархии  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
Владислав Колосов
SQLcoder,

MS SQL - реляционная СУБД. Получить иерархические данные можно только в виде XML документа.

Ну, начиная с 2016-й версии уже и JSON поддерживается. Нет под рукой сервера, чтобы поиграться, поэтому могу только ссылку на документацию дать:

https://docs.microsoft.com/en-us/sql/relational-databases/json/format-query-results-as-json-with-for-json-sql-server
11 авг 17, 17:39    [20717549]     Ответить | Цитировать Сообщить модератору
 Re: Получить данные в виде иерархии  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1081
Владислав Колосов,

Это с какого перепугу? Рекурсию никто пока не отменял
12 авг 17, 15:44    [20718736]     Ответить | Цитировать Сообщить модератору
 Re: Получить данные в виде иерархии  [new]
Yuri Abele
Member

Откуда: Латвия> Литва > Тольятти > Wiesbaden > Karlsruhe
Сообщений: 1661
waszkiewicz
Это с какого перепугу? Рекурсию никто пока не отменял

Речь не о методе, а о возвращаемом формате. Тут коллеги правы - только XML или JSON если >=2016.
14 авг 17, 10:18    [20721001]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить