Я использую postgres 9.5. У меня есть таблица профиля, в которой перечислены имена:
public.profiles:
id | first_name | last_name
--- --------------- ---------------------
1 Jason Bourne
2 Jhonny Quest
У меня есть таблица счетов-фактур:
public.invoices:
invoice_id | billing_address | profile_id
------------------ ----------------------------- ---------------------
1 { 2
"address_line1": "445 Mount
Eden Road",
"city":"Mount Eden",
"country": "Auckland"
}
Я хочу обновить столбец billing_address таблицы счетов-фактур, указав first_name и last_name из таблицы профиля, например:
public.invoices:
invoice_id | billing_address | profile_id
------------------ ----------------------------- ---------------------
1 {
"name" : "Jhonny Quest" 2
"address_line1": "445 Mount
Eden Road",
"city":"Mount Eden",
"country": "Auckland"
}
. Для этого я попытался использовать jsonb_set:
UPDATE invoices AS i SET billing_address = jsonb_set(billing_address,'{name}', SELECT t::jsonb FROM (SELECT CONCAT (p.first_name,p.middle_name, p.last_name) FROM profiles p WHERE p.id = i.profile_id)t )
. Выдает ошибку при SELECT. Т.Б. Я даже не уверен, является ли какое-либо из этих утверждений законным. Нужны любые указания.