在表A中为表B中的每个不同值创建行

时间:2015-04-03 17:41:31

标签: mysql sql select distinct sql-insert

我有表A,其中包含ID和proposalID。表B也有一个proposalID。我想要做的是表B中的每个不同的proposalID,我想在表A中创建一个具有相同的proposalID和新ID的新行。

因此,表A具有这些不同的proposalID:

94CAEF39-855B-4B5C-9534-9D4AD0A75FC8
C1D87317-7028-4F69-91D4-FFFBB35E7ACD
807D7733-5CCF-486F-81E5-FFF153307C22
521E22E2-511E-46F2-AA46-FFF832367A9E

我想让桌子B现在拥有的是:

ID: new uniqueidentifier, proposalID: 94CAEF39-855B-4B5C-9534-9D4AD0A75FC8
ID: new uniqueidentifier, proposalID: C1D87317-7028-4F69-91D4-FFFBB35E7ACD
ID: new uniqueidentifier, proposalID: 807D7733-5CCF-486F-81E5-FFF153307C22
ID: new uniqueidentifier, proposalID: 521E22E2-511E-46F2-AA46-FFF832367A9E

我还在学习sql而且不知道如何处理这个问题。我知道如何获得所有不同的proposalID,但之后我不知道。

1 个答案:

答案 0 :(得分:1)

这个怎么样?

insert into A(id, proposal)
    select uuid(), proposal
    from (select distinct proposal
          from b
         ) b;

但是,使用表A的自动递增ID会不会更简单?然后,当您插入新值时,id会自行设置。