Измените значения в строке, если первичный ключ отсутствует в другой таблице - PullRequest
0 голосов
/ 01 марта 2020
UPDATE Customers,OrderLine
Set customerID = "---"
Where Customers.customerID != OrderLine.CustomerID;

Я не слишком уверен, как сделать эту работу. Это означает, что нужно изменить значения в customerID на ---, но только если это значение отсутствует в столбце CustomerID в таблице OrderLine

Ответы [ 2 ]

0 голосов
/ 01 марта 2020

С NOT IN:

UPDATE Customers
SET Customers.customerID = "---"
WHERE Customers.ID NOT IN (SELECT OrderLine.CustomerID FROM OrderLine);
0 голосов
/ 01 марта 2020

Столбец типа customerID Я думаю, PRIMARY KEY таблицы Customers, верно? Если это так, то вы просто не можете обновить более 1 строки до '---', потому что это создаст дубликаты, а это недопустимо.

Если это не так, используйте NOT EXISTS:

UPDATE Customers 
SET customerID = "---"
WHERE NOT EXISTS (
  SELECT 1 FROM OrderLine
  WHERE Customers.customerID = OrderLine.customerID
) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...