插入具有来自另一个子查询的值的行
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
然后会插入
我有一个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
我知道我可以通过
获取 IDSELECT 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
然后会插入