У меня есть база данных, где:
Таблица foo
имеет столбцы id
и name
Таблица bar
имеет столбцы id
и foo_id
У меня есть входящий HTTP-запрос с foo.name
, я хочу вставить строку в bar
с bar.foo_id
, установленным соответствующим образом Так, например:
> SELECT * FROM foo;
id name
------ -------
1 "Andrey"
(1 row)
> SELECT * FROM bar;
(0 rows)
Учитывая "Andrey"
, есть ли один запрос, который я могу выполнить, чтобы получить:
> SELECT * FROM bar;
id foo_id
------ -------
1 1
(1 row)
Я думал так:
> UPDATE bar SET foo_id=(SELECT id FROM foo WHERE foo.name=?)
Но, похоже, это неправильно, поскольку SELECT возвращает наборы, а не значения ...