“PostgreSQL дисплея подзадна как JSON” Ответ

PostgreSQL дисплея подзадна как JSON

// joining 3 tables and nesting results as json, keys can be named arbitrarily

select
        json_build_object(
                'id', u.id,
                'name', u.name,
                'email', u.email,
                'user_role_id', u.user_role_id,
                'user_role', json_build_object(
                        'id', ur.id,
                        'name', ur.name,
                        'description', ur.description,
                        'duty_id', ur.duty_id,
                        'duty', json_build_object(
                                'id', d.id,
                                'name', d.name
                        )
                )
    )
from users u
inner join user_roles ur on ur.id = u.user_role_id
inner join role_duties d on d.id = ur.duty_id;
Wide-eyed Fox

PostgreSQL дисплея подзадна как JSON

// PostgreSQL >= 9.4 : to_json(), json_build_object(), json_object() and json_build_array(), 
// though it's verbose due to the need to name all the fields explicitly:

select
        json_build_object(
                'id', u.id,
                'name', u.name,
                'email', u.email,
                'user_role_id', u.user_role_id,
                'user_role', json_build_object(
                        'id', ur.id,
                        'name', ur.name,
                        'description', ur.description,
                        'duty_id', ur.duty_id,
                        'duty', json_build_object(
                                'id', d.id,
                                'name', d.name
                        )
                )
    )
from users u
inner join user_roles ur on ur.id = u.user_role_id
inner join role_duties d on d.id = ur.duty_id;
Wide-eyed Fox

Ответы похожие на “PostgreSQL дисплея подзадна как JSON”

Вопросы похожие на “PostgreSQL дисплея подзадна как JSON”

Больше похожих ответов на “PostgreSQL дисплея подзадна как JSON” по Sql

Смотреть популярные ответы по языку

Смотреть другие языки программирования