代码之家  ›  专栏  ›  技术社区  ›  Vishal

是否帮助插入查询,该查询将原始ID替换为SQL中的其他值?

  •  1
  • Vishal  · 技术社区  · 14 年前

    更新 :添加更多 Employee ReplacementEmployee

    员工 -

     EmployeeId   SerialNo
     ----------------------------- 
     1             11111  
     34            23233    
     23            13234  
    

    更换员工 -

     ReplacementId   SerialNo
     ----------------------------- 
     11            11111  
     23            23233    
     13            13234  
    

    所以当我在序列号上加入这些表的时候,有这样的东西 Mapping Table -

     EmployeeId   ReplacementId
     ----------------------------- 
     1             11    
     34            23    
     23            13  
    

    所以现在我已经插入了表中的所有数据,就像这样 OrignalTable 它可以为EmployeeID提供多个值-

     EmployeeId   Name
     ----------------------------- 
     1             AAA    
     34            BBB    
     23            CCC  
     1             AAA
    

    到一个具有不同模式的表中,基本上是这样的 InsertTable 它可以为EmployeeID提供多个值-

    ReplacementId       Name
    ------------------------------- 
     11                AAA   
     23                BBB
     13                CCC  
     11                AAA
    

    所以如果你看看这个问题,我需要 insert 从一个表到另一个表的数据,但我需要插入一个不同的字段,在这种情况下,我需要插入 corresponding ReplacementId 而不是 EmployeeId 在新表中。那么,有人能建议我怎么写这样的问题吗?

    1 回复  |  直到 14 年前
        1
  •  2
  •   LittleBobbyTables - Au Revoir    14 年前

    试试这个:

    INESRT INTO InsertTable (ReplacementID, [Name])
    SELECT R.ReplacementID, O.[Name]
    FROM OriginalTable O
    INNER JOIN Employee E ON E.EmployeeID = O.EmployeeID
    INNER JOIN ReplacementEmployee R ON E.SerialNo = R.SerialNo
    

    如果在inserttable中只需要每个雇员的一个实例,请使用 SELECT DISTINCT 相反