1

我有以下代码,但它会更新 中的所有行table_1,即使条件不成立(即 wheretable_1.data_1中根本不存在table_2.data_1)。如何调整以下更新语句,以便仅更新table_1与其中的值匹配的值table_2

我正在尝试将所有值设置table_1.data_2为 NULL,其中data_1两个表中的值相同。

UPDATE table_1.data_1, table_2.data_1
SET table_1.data_2 = NULL
WHERE table_1.data_1 = table_2.data_1

这是我原帖的更新。

UPDATE table_1.data_2
SET table_1.data_2 = NULL
WHERE table_1.data_1 IN
(SELECT table_2.data_1 FROM table_2 WHERE table_1.data_1 = table_2.data_1);
4

1 回答 1

0

我没有对此进行测试,但认为这样的事情会起作用:

UPDATE table_1 SET data_2 = NULL 
  WHERE data_1 IN(SELECT table_1.data_1 
  FROM table_1, table_2 
  WHERE table_1.data_1 = table_2.data_1)

当我需要关于如何处理某事的不同想法时, 我喜欢这个资源: http ://www.artfulsoftware.com/infotree/queries.php

更新:

UPDATE table_1
LEFT JOIN table_2 
ON table_1.data_1 = table_2.data_1 AND table_1.data_1 IS NOT NULL
SET table_1.data_2 = NULL;
于 2013-02-09T08:57:47.717 回答