Как сделать одну json из нескольких строк в таблице в PostgreSQL? - PullRequest
0 голосов
/ 06 мая 2020

У меня есть 9 таблиц, которые составляют расписание для моего института. Это такие как «группы», «подгруппы», «тип_недели», «дни_недели», «последовательность», «имя_предмета», «учителя», «аудитории», «тип_предмета».

Я создал таблицу с ключами к столбцу id каждой таблицы.

Таблица «расписание» содержит столбцы: id_schedule | id_group | id_subgroup | idweek_type | iddays_of_week | idsequence | idsubjects | idteachers | idauditoriums | idsubjects_types.

Таблица «расписание» таблица «расписание» изображение

Я создал представление как select * из расписания.

CREATE VIEW AS SELECT * ИЗ расписания: это изображение просмотра

Все в порядке.

И теперь я хочу извлечь только одну строку json из этого представления, где значения colomns id_schedule | idgroups | idsubgroups | idweek_type | iddays_of_week - то же самое, примерно так:

{
    "id_schedule":1,
    "group_name" : "GN-11",
    "subgroup" : "whole",
    "week_type": "odd",
    "day_of_week" : "Mon",
    "lessons":[
        {
            "sequence" : "I",
            "subject_name" : "OOP",
            "teacher_name" : "Smith",
            "auditorium":"404",
            "subject_type":"Lecture"
        },
        {
            "sequence" : "II",
            "subject_name" : "Math",
            "teacher_name" : "Lisa",
            "auditorium":"503",
            "subject_type":"Practice"
        },
        {
            "sequence" : "III",
            "subject_name" : "Business",
            "teacher_name" : "Jefferson",
            "auditorium":"403",
            "subject_type":"Lab"
        }
    ]
}

НО я могу сделать json только для одной строки отдельно вот так:

{   "id_schedule":1,
    "groups_name":"GN-11",
    "subgroupscol":"whole",
    "type_of_week":"odd",
    "days":"Mon",
    "order_col":"I",
    "subjects_name":"OOP",
    "teachers":"Smith",
    "auditorium":"404",
    "types":"Lecture"
}

Не понимаю, как это сделать ...

...