代码之家  ›  专栏  ›  技术社区  ›  Serge Kashlik

如何将INSERT INTO与左联接一起使用?

  •  0
  • Serge Kashlik  · 技术社区  · 7 年前

    如果有人能帮忙,我将不胜感激。 我需要合并两张桌子。到目前为止,我每次都这样做。

      SELECT * INTO TABLE_3
    
      FROM TABLE_1 LEFT JOIN TABLE_2
        ON TABLE_1.[DATE] = TABLE_2.[DATE1]
    

    但是,我想跳过创建新表的部分,将所需的列直接插入到现有表中。 我试过这么做,

    INSERT INTO [TABLE_1] (USD,EUR,RUR)
    
    SELECT USD,EUR,RUR 
    
    FROM TABLE_1 AS T1 LEFT JOIN TABLE_2 AS T2
       ON T1.[DATE] = T2.[DATE1]
    

    但我的列名不明确时出错

    我使用SQL server 2014。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Pranav MS    7 年前

    请指定别名,以说明列应从哪个表中获取,而不是直接给出列名。这里可能有两个表,它们具有您尝试选择的相同列。您应该指定确切的表

    INSERT INTO [TABLE_1] (USD,EUR,RUR)
    
    SELECT [T1/T2].USD,[T1/T2].EUR,[T1/T2].RUR 
    
    FROM TABLE_1 AS T1 LEFT JOIN TABLE_2 AS T2
       ON T1.[DATE] = T2.[DATE1]
    

    您可以根据业务逻辑指定T1或T2。请按此处所述重写查询。这将解决问题。请试试这个。