我有一个像这样的数据库:
表 foo
有列 id
和 name
表 bar
有列 id
和 foo_id
我有一个带有 foo.name
的传入 HTTP 查询,我想在 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 的返回集,而不是值...
最佳答案
你必须做
SELECT TOP 1 ID FROM foo where foo.name=?
但除此之外,在更新中进行选择没有任何问题。
关于mysql - 我可以在 SQL UPDATE 中使用内部 SELECT 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/778307/