Following is the query structure:
WITH TAB1 AS ( SELECT * FROM HUGE_TABLE_1 WHERE id='something' ),
TAB2 AS ( SELECT * FROM HUGE_TABLE_2 WHERE id='something' LEFT JOIN TAB1 ON TAB1.id=TAB2.id )
TAB3 AS ( SELECT * FROM HUGE_TABLE_3 WHERE id='something' LEFT JOIN TAB2 ON TAB1.id=TAB2.id )
SELECT JSON_BUILD_OBJECT( ... , 'TAB2', JSON2 ) AS JSON1, id FROM TAB1 GROUP BY FK_ID
LEFT JOIN
( SELECT JSON_BUILD_OBJECT( ... , 'TAB3', JSON3 ) AS JSON2, id FROM TAB3 GROUP BY FK_ID
LEFT JOIN
( SELECT ROW_TO_JSON(TAB3.*) AS JSON3, id FROM TAB3 GROUP BY FK_ID ) AS JOIN2 ... ) AS JOIN1 ...
In the above sample query, tables TAB1 and TAB2 are referred multiple times, so will the TAB1 or TAB2 queries be executed every time they are referred or the results are stored by Postgres?