【问题标题】:Create row in table A for each distinct value in table B为表 B 中的每个不同值在表 A 中创建行
【发布时间】:2015-04-03 17:41:31
【问题描述】:

我有一个表 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,不知道如何解决这个问题。我知道如何获取所有不同的提案 ID,但之后我就不知道了。

【问题讨论】:

    标签: mysql sql select distinct sql-insert


    【解决方案1】:

    这个怎么样?

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-15
      • 2015-12-15
      相关资源
      最近更新 更多