我知道这很简单,但我有精神障碍。
我需要更新属于某个类别的所有产品。产品将分配到关联表中的类别。
所以它就像
UPDATE product P1
SET myflag = 1
WHERE P1.productid IN (
SELECT CA.productid
FROM category_associations CA
WHERE CA.categoryid = '500'
)
有更好的方法吗?
答案 0 :(得分:4)
JOIN
通常会有最佳执行计划,但IN
可能效率低下:
UPDATE
product P1 JOIN
category_associations ca
ON ca.productId = P1.productId
AND ca.categoryId = '500'
SET P1.myflag = 1
答案 1 :(得分:0)
另一种写作方式是:
UPDATE product
SET myflag = 1
FROM product P1 JOIN
category_associations ca
ON ca.productId = P1.productId
WHERE ca.categoryId = '500'