【问题标题】:Insert values from one table into another in which data type is same but column's name is different将一个表中的值插入另一个数据类型相同但列名不同的表中
【发布时间】:2016-06-13 05:16:12
【问题描述】:

我有两张桌子。

两个表具有相同的列,但列的名称不同。

第一个表有列:

|ID_pk|Name

并且只有唯一的 [ID](一对一)

第二个表有列:

|SerialNumber|FullLegalName|PassportNumber_fk|

并且 [SerialNumber] 和 [PassportNumber] 之间存在一对多的关系

[ID] 和 [SerialNumber] 列没有匹配值。

我需要将第二个表中的所有 [ID] 和 [Name] 值插入到 [SerialNumber] 和 [FullLegalName] 以及它们各自的 [PassportNumber(s)]。

【问题讨论】:

    标签: sql insert insert-into


    【解决方案1】:

    试试这样的,

    update tbl2
    set tbl2.SerialNumber= tbl1.id,
        tbl2.FullLegalName = tbl1.Name 
    
    from tbl1, tbl2
    where tbl2.PassportNumber = 'something';
    

    【讨论】:

      【解决方案2】:

      你可以这样做。

      但第一个和第二个表的列属性必须相等。

      update SecondTable 
      set SerialNumber = ft.ID,
         FullLegalName = ft.Name
      from FirstTable as ft 
         inner join SecondTable as st on ft.Id = st.PassportNumber_fk_ColumneName
         inner join ThirdTable as tt on st.PassportNumber_fk_ColumneName = tt.PassportNumber_pk_ColumneName
      

      【讨论】:

      • 问题是我在第一个和第二个表中没有任何匹配的值,所以我不确定这个连接应该做什么。我可以更好地使用 where Not Exists 吗?
      • 问题可以关闭了。我开发了另一种解决方案 CTE。但也有困难。我将发布一个新问题的链接。 stackoverflow.com/questions/37801035/…
      猜你喜欢
      • 2019-08-30
      • 1970-01-01
      • 2017-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-26
      • 2021-12-14
      • 2020-07-10
      相关资源
      最近更新 更多