Я знаю, что он почти там, но база сообщает, что не может найти столбец с именем table1.id, когда я знаю, что он там!
ОБНОВЛЕНИЕ table2 SET col1 = (SELECT field1 FROM table1 WHERE table2.id = table1.id) WHERE table1.id = table2.id
UPDATE table2 SET col1 = (SELECT field1 FROM table1 WHERE table2.id = table1.id)
таблица1 неизвестна во внешнем SQL.
Вариант 1: не нужно иметь внешнее предложение WHERE. Вариант 2: не используйте внутренний запрос без необходимости. Вместо этого используйте Inner Join
Вместо использования предложения WHERE попробуйте использовать предложение INNER JOIN.Это действительно поздно, так что прости меня за мой код ха-ха
UPDATE table2 SET col1 = (SELECT field1 FROM table1 WHERE table2.id = table1.id) INNER JOIN table1 ON table2.id = table1.id
Что я получу по вашему запросу, это будет работать
UPDATE table2 SET col1 = t1.field1 FROM table2 t2 INNER JOIN table1 t1 ON t2.id = t1.id