我正在尝试弄清楚当另一个表中的限定符适用时如何更新表中的行。例如,“SET x to y WHERE A.z = B.z AND B.x ='foo'”。
根据我发现的教程,我在W3 Schools' Tryit Editor上执行了以下操作:
UPDATE Products
SET ProductName = Unit
WHERE EXISTS (SELECT *
FROM Products
JOIN Categories ON Products.CategoryID = Categories.CategoryID
WHERE Categories.CategoryName = 'Beverages')
SELECT语句本身显示正确的(12)条目,但UPDATE语句整体更改所有(77)行。我做错了什么,可以修复吗?
答案 0 :(得分:1)
我认为你想要一个相关的子查询:
UPDATE Products
SET ProductName = Unit
WHERE EXISTS (SELECT 1
FROM Categories
WHERE Products.CategoryID = Categories.CategoryID AND
Categories.CategoryName = 'Beverages'
);