我有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