У меня есть таблица под названием map_tags
:
map_id | map_license | map_desc
И еще одна таблица (widgets
), записи которой содержат ссылку на внешний ключ (от 1 до 1) на запись map_tags
:
widget_id | map_id | widget_name
Учитывая ограничение, что все map_license
уникальны (однако не настроены как клавиши на map_tags
), тогда, если у меня есть map_license
и a widget_name
, я бы хотел выполнить вставку widgets
все внутри одного и того же оператора SQL:
INSERT INTO
widgets w
(
map_id,
widget_name
)
VALUES (
(
SELECT
mt.map_id
FROM
map_tags mt
WHERE
// This should work and return a single record because map_license is unique
mt.map_license = '12345'
),
'Bupo'
)
Я считаю, что нахожусь на правильном пути, но знаю сразу, что это неправильный SQL для Postgres. Кто-нибудь знает правильный способ достижения такого единого запроса?