You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于ProductCode,用Join实现表间无重复数据插入需求

解决SQL插入重复数据问题(使用Join实现去重)

要实现仅将数据源表[dbo].[Sheet1$]中目标表ProductCategoryMapping2不存在的ProductCode数据插入目标表,且必须通过Join实现(禁止子查询),可以通过LEFT JOIN关联两张表,筛选出目标表中无匹配的记录进行插入,修改后的代码如下:

INSERT INTO ProductCategoryMapping2
( [ProductCode]
, [ProductName]
, [Category]
, [IsActive]
, [Division]
, [SubCategory])
SELECT  TRIM(STR(s.MATCODE, 25, 0)) AS ProductCode
, s.MATNAME AS ProductName
, s.[OPERATIONS_PROD_CATEGORY_NAME] AS Category
, IIF(s.[MAT_BRAND_STATUS_NAME] = 'Active', 1, 0) AS [IsActive]
, s.[OPERATIONS_PROD_DIVISION_NAME] AS Division
, s.[OPERATIONS_PROD_SUBCATEGORY_NAME] AS SubCategory
FROM [dbo].[Sheet1$] s
LEFT JOIN ProductCategoryMapping2 t
    ON TRIM(STR(s.MATCODE, 25, 0)) = t.ProductCode
WHERE t.ProductCode IS NULL

代码说明:

  • 通过LEFT JOIN将数据源表s和目标表t以ProductCode为关联条件进行匹配
  • WHERE t.ProductCode IS NULL筛选出所有在目标表中没有对应ProductCode的数据源记录,这些就是需要插入的新数据
  • 这样每次执行存储过程时,只会插入目标表中不存在的ProductCode数据,彻底避免重复插入问题

内容的提问来源于stack exchange,提问作者Baba Ranjith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 07:50:18