有没有办法从一个表中选择一组值,然后在IN子句中使用这些值?
我想从一个表中选择ID,然后在另一个表中更新这些ID的数据。
类似
<some var> = SELECT id from tableA WHERE <something>;
INSERT INTO tableB <stuff> where id IN (<some var>);
我发布变量语法不是真的。只是想显示我的意图。我已经阅读了一些关于SET的内容,但我仍然是MySQL的新手,所以它并没有完全合理。它还提到SET只能设置某些类型的变量,它们似乎都很简单。
谢谢!
答案 0 :(得分:0)
您可以使用insert . . . select
:
INSERT INTO tableB (id)
SELECT id
FROM tableA
WHERE <something>;
我不确定IN
与此有何关系。
编辑:
哦,你想要一个update
:
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
版本。