有没有办法从一个表中选择一组值,然后在 IN 子句中使用这些值?
我想从一个表中选择 ID,然后在另一个表中更新这些 ID 的数据。
有点像
<some var> = SELECT id from tableA WHERE <something>;
INSERT INTO tableB <stuff> where id IN (<some var>);
我发布的变量语法不是真的。只是想表明我的意图。我已经阅读了一些关于 SET 的内容,但我对 MySQL 还是陌生的,所以它没有完全的意义。还提到SET只能设置某些类型的变量,而且看起来都很简单。
谢谢!
最佳答案
您可以使用 insert 。 . .选择
:
INSERT INTO tableB (id)
SELECT id
FROM tableA
WHERE <something>;
我不确定 IN
与此有什么关系。
编辑:
哦,你想要一个更新
:
update tableb b join
tablea a
on b.id = a.id
set b.col = ??
where <conditions on a>;
您也可以使用 in
执行此操作:
update tableb b
set col = ??
where b.id in (select a.id from tablea a where <conditions>);
最大的区别在于是否要使用来自tablea
的信息。如果这样做,则需要 join
版本。
关于mysql - 选择和存储值,在 IN 子句中使用这些值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43017567/