sql-server – 如何使用OPENJSON将json列表与SQL Server中的表连接?

我有json数据,其中有productDetails列表.我需要将每个细节与productId结合起来.

我正在使用存储过程.这是我的代码:

DECLARE @products AS TABLE(productName NVARCHAR(255), 
                           productId INT NOT NULL);

INSERT INTO @products  
    EXEC [saveproducts] @product;

从上面的查询中,我将获得产品列表作为表.现在我需要在json中加入相应产品的细节

INSERT INTO @detail 
     SELECT
         [detaiId], [productId]
     FROM 
         OPENJSON(@detailJSON) 
     WITH(detailId UNIQUEIDENTIFIER 'strict $.detaiId',
       productId INT ??????);

如何通过比较@detailJSON中的productName和表@products来获取productId?

最佳答案 只需要一个简单的内连接

 INSERT INTO @detail 
 SELECT
     J.[detaiId], P.[productId]
 FROM 
 @products P
 INNER JOIN
     OPENJSON(@detailJSON) 
 WITH(detailId UNIQUEIDENTIFIER 'strict $.detaiId',
      productName  NVARCHAR(255) 'strict $.productName'
   ) J 
 ON J.productName = P.productName 
点赞