ОБНОВИТЬ таблицу SQL с ГДЕ до другой таблицы - PullRequest
0 голосов
/ 06 мая 2018

В настоящее время я пытаюсь выяснить, как ОБНОВИТЬ строки в таблице, когда применяется классификатор из другой таблицы. Например, "УСТАНАВЛИВАЙТЕ x на y ГДЕ A.z = B.z AND B.x = 'foo'".

Основываясь на найденном уроке, я сделал следующее на Редакторе Tryit для школ W3 :

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) строк. Я что-то не так делаю и можно ли это исправить?

1 Ответ

0 голосов
/ 06 мая 2018

Я думаю, что вы хотите коррелированный подзапрос:

UPDATE Products
    SET ProductName = Unit
    WHERE EXISTS (SELECT 1
                  FROM Categories 
                  WHERE Products.CategoryID = Categories.CategoryID AND
                        Categories.CategoryName = 'Beverages'
                 );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...