插入具有来自另一个子查询的值的行

Insert rows with value from another subquery

我有一个table"example"

 id | name | value
-------------------
 1  | 'ab' |   10
 2  | 'ab' |   30
 3  | 'ef' |   20
 1  | 'gh' |   40
 3  | 'kl' |   40
 1  | 'mn' |   40
 2  | 'mn' |   40

我想为每个 id1 添加一个新行,如下所示:

INSERT INTO example (id, name, value) VALUES (<every id>, 'ij', 50)

所以在那条语句之后 table 应该是这样的:

 id | name | value
-------------------
 1  | 'ab' |   10
 2  | 'ab' |   30
 3  | 'ef' |   20
 1  | 'gh' |   40
 3  | 'kl' |   40
 1  | 'mn' |   40
 2  | 'mn' |   40
 1  | 'ij' |   50
 2  | 'ij' |   50
 3  | 'ij' |   50

我知道我可以通过

获取 ID
SELECT DISTINCT id FROM example;

但我不知道如何将两个语句合并为一个。 所以:我该怎么做?

您可以使用 insert as select 和 distinct 来做到这一点,如下所示:

INSERT INTO example
(SELECT distinct ID,'ij',50 FROM example)

这是如果这 3 列是唯一的列并且按该顺序排列,如果不是,则需要在 select.

之前指定 (id, name, value)

在你的情况下 select 将 return:

 1  | 'ij' |   50
 2  | 'ij' |   50
 3  | 'ij' |   50

然后会插入