add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
Help with an interesting Postgres question: Why isn't an Index Only Scan used on a partition accessed via the parent table?.
create table level_one_table (
id int,
colmun1 varchar(10)
);

insert into level_one_table values
(1, 'va1');

create table level_two_table (
id int,
fk_level_one_id int,
colmun2 varchar(10)
);

insert into level_two_table values
(1, 1, 'va1'),
(2, 1, 'va2');

create table level_three_table (
id int,
fk_level_two_id int,
colmun3 varchar(10)
);

insert into level_three_table values
(1, 1, 'va1'),
(2, 2, 'va2');

CREATE TABLE
INSERT 0 1
CREATE TABLE
INSERT 0 2
CREATE TABLE
INSERT 0 2
SELECT jsonb_pretty(
json_build_object(
'level_one_table',
json_build_object(
'id', t0.id,
'level_two_table',
json_arrayagg(
json_build_object(
'id', t1.id,
'colmun2', t1.colmun2,
'level_three_table',
json_build_object(
'id', t2.id,
'colmun3', t2.colmun3
)
)
)
)
)::jsonb
) as json_obj
FROM level_one_table t0
LEFT JOIN level_two_table t1 ON t0.id = t1.fk_level_one_id
LEFT JOIN level_three_table t2 ON t1.id = t2.fk_level_two_id
GROUP BY t0.id
json_obj
{
    "level_one_table": {
        "id": 1,
        "level_two_table": [
            {
                "id": 1,
                "colmun2": "va1",
                "level_three_table": {
                    "id": 1,
                    "colmun3": "va1"
                }
            },
            {
                "id": 2,
                "colmun2": "va2",
                "level_three_table": {
                    "id": 2,
                    "colmun3": "va2"
                }
            }
        ]
    }
}
SELECT 1