https://stackoverflow.com/questions/25969/insert-into-values-select-from и ещё в куче мест, но там прямо результат от SELECT идёт. у меня немного сложнее.
у меня такой SELECT:
SELECT
o.name AS "firstName", o.surname AS "lastName",
e.cropped_image_thumb AS image, e.name AS title,
e.venue_name AS venue, e.venue_address AS address,
e.venue_city AS city, e.venue_state AS province,
e.zip AS zip,
s.start_date AS date, t.showtime AS show,
json_agg(json_build_object('secret', t.secret, 'sequence', format('T%s', t.id), 'title', b.book_title,
'payload', format('{vendor: "seatmonger.com", ticket: "T%s", secret: "%s"}',
t.id, t.secret)))::JSONB AS tickets
FROM
purchase o, event e, event_shows s, ticket t, ticket_books b
WHERE
t.order_id = o.id AND
b.id = t.book_id AND
t.show_id = s.id AND
event.id = s.event_id AND
o.id = ${order}
GROUP BY
o.name, o.surname, e.cropped_image_thumb, e.name, e.venue_name,
e.venue_address, e.venue_city, e.venue_state, e.zip, s.start_date,
t.showtime;
к которому надо подключить такой INSERT
INSERT INTO
emails (payload, template_id)
VALUES
(json_build_object('firstName', firstName, 'recipient', '${email}', 'orderId', ${order}, 'image', image,
'title', title, 'date', date, 'show', show, 'venue', venue, 'address', address, 'city', city,
'province', province, 'zip', zip, 'tickets', tickets)::JSONB, 3);
это возможно без функций, просто запросом сделать?
Более опытные товарищи меня возможно поправят, но вы хотите странного. Нельзя «подключать» insert к select. Есть синтаксис команды insert описанный в документации и вам следует свой запрос сделать в этом - описанном - виде.
Обсуждают сегодня