【发布时间】:2015-07-02 05:03:36
【问题描述】:
大家好,
我们的目标是获得一个脚本,该脚本将在中间表 (ProductTaxCategory) 中插入缺失的产品对 - TaxCategory
以下脚本可以正常工作,但我们正在努力寻找优化它的方法:
INSERT ProductTaxCategory
(ProductTaxCategory_TaxCategoryId,ProductTaxCategory_ProductId)
SELECT
TaxCategoryId
,ProductId
FROM Product pr
CROSS JOIN TaxCategory tx
WHERE pr.ProductId NOT IN
(
SELECT ProductTaxCategory_ProductId
FROM ProductTaxCategory
)
OR
pr.ProductId IN
(
SELECT ProductTaxCategory_ProductId
FROM ProductTaxCategory
)
AND
tx.TaxCategoryId NOT IN
(
SELECT ProductTaxCategory_TaxCategoryId
FROM ProductTaxCategory
WHERE ProductTaxCategory_ProductId = pr.ProductId
)
我们如何优化这个查询?
【问题讨论】:
-
MERGE 可能更适合您的情况
标签: sql join sql-server-2012 notin