admin

我可以在SQL UPDATE内使用内部SELECT吗?

sql

我有一个像这样的数据库:

foo有列idnamebar有列idfoo_id

我有一个带有的传入HTTP查询foo.name,我想barbar.foo_idset中适当插入一行。因此,例如:

> 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的返回集是值,而不是值…


阅读 156

收藏
2021-07-01

共1个答案

admin

你将不得不做

SELECT TOP 1 ID FROM foo where foo.name=?

但是除此之外,在更新中进行选择没有任何问题。

2021-07-01