使用IN子句中的这些值选择和存储值

时间:2017-03-25 14:26:16

标签: mysql variables

有没有办法从一个表中选择一组值,然后在IN子句中使用这些值?

我想从一个表中选择ID,然后在另一个表中更新这些ID的数据。

类似

<some var> = SELECT id from tableA WHERE <something>;

INSERT INTO tableB <stuff> where id IN (<some var>);

我发布变量语法不是真的。只是想显示我的意图。我已经阅读了一些关于SET的内容,但我仍然是MySQL的新手,所以它并没有完全合理。它还提到SET只能设置某些类型的变量,它们似乎都很简单。

谢谢!

1 个答案:

答案 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版本。