Вы можете использовать коррелированный подзапрос, как показано ниже. Это предполагает, что будет возвращено ровно одно совпадающее значение. Он выдаст ошибку, если будет возвращено более одного совпадающего значения, или установит для поля значение null, если возвращается ноль Если это последнее поведение нежелательно, вам понадобится предложение where
.
UPDATE table1
SET field1 = (SELECT DISTINCT table2.ValueColumn
FROM table2
WHERE table2.JoinColumn = table1.JoinColumn)
Редактировать
Для просмотра записей с 0 или более 1 совпадениями вы можете использовать
SELECT table1.JoinColumn, COUNT(DISTINCT table2.ValueColumn)
FROM table1
LEFT JOIN table2
ON table2.JoinColumn = table1.JoinColumn
GROUP BY table1.JoinColumn
HAVING COUNT(DISTINCT table2.ValueColumn) <> 1