将唯一值插入同一张表

比拉尔

我有一张桌子,我想插入带有新日期的旧值,但只插入唯一的值。

t1

ID      |    Block     |    Flats  |
1       |      1       |      GF-1 |
2       |      1       |      GF-2 |
3       |      2       |      GF-1 |
4       |      2       |      GF-2 |
5       |      2       |      GF-2 |

这是我的表的一部分,有一些示例数据,我希望它在复制后成为

ID      |    Block     |    Flats  |
1       |      1       |      GF-1 |
2       |      1       |      GF-2 |
3       |      2       |      GF-1 |
4       |      2       |      GF-2 |
5       |      2       |      GF-2 |
6       |      1       |      GF-1 |
7       |      1       |      GF-2 |
8       |      2       |      GF-1 |
9       |      2       |      GF-2 |

复制后,它仅复制了不同的值,而GF-2仅复制了一次。但是当我尝试

insert into t1 (ID,Block,Flats) select distinct Block,Flats from t1

它在块2中两次复制该GF-2。

注意:ID列自动增加1。

戈登·利诺夫

您可以使用生成所有行cross join,然后淘汰已经存在的行:

insert into t1(block, flats)
    select b.block, f.flats
    from (select distinct block from t1) b cross join
         (select distinct flats from t1) f left join
         t1
         on t1.block = b.block and t1.flats = f.flats
    where t1.block is null;

注意:假设这id是一identity列(据我所知,您已经将其描述为实际情况)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

mysql将唯一值从一列插入另一张表的列

将第一张表的插入值获取到第二张表

在MySQL的同一张表中插入行

插入同一张表,避免重复

如何将每个现有ID的行插入同一张表?

将数据从一张表插入到另一张表 - MySQL

如何比较同一张表中的值

多次连接同一张表

多次查询同一张表

sequelize 与同一张表的关联

(一张表)插入行

sql比较同一张表中的两个唯一行

如果MYSQL中不存在两个值,则插入记录(同一张表)

如何将SELECT查询的每个结果的三个新行插入同一张表

Excel:将 VBA 操作从同一张工作表更改为另一张工作表

将 JSON 数据从一张表插入到 HIVE 中的另一张表

将一张表插入另一张表(来自不同的数据库)——MySQL

在PHP MYSQL中循环以将累积的数据从一张表插入到新一张表中

将两张表中的多行插入到一张表中

通过从SQL Server的另一张表中选择行,将所有行一张一张地插入到空表中

选择一列的唯一值和另一张表的单个非唯一值

我们能否插入一张表并通过查看另一张表的值作为插入的ID来触发更新插入行的一列?

将同一张表连接两次,然后累加->将实际需要的值加倍

甲骨文插入选择最大+1到同一张表

在SQL中使用不同的数据插入和更新同一张表

如何使用MERGE的“不匹配时”在同一张表中插入新记录?

如何在同一张表中插入多行-Oracle 10g

Yii2插入同一张表的多个记录

无法在第三张工作表中填充唯一值,将第二张工作表的值与第一张工作表的值进行比较