Для SQLite:
UPDATE table1
SET col3 = ( SELECT col5
FROM table2
WHERE (table1.col1, table1.col2)=(table2.col1, table2.col2)
LIMIT 1 )
/* WHERE table1.col3 IS NULL */
Если (col1, col2)
в table2
определено как уникальное, то LIMIT 1
может быть удалено.
Для MySQL ( вопрос помечен MySQL):
UPDATE table1
JOIN table2 USING (col1, col2)
SET table1.col3 = table2.col5
/* WHERE table1.col3 IS NULL */
(col1, col2)
в table2
должен быть определен как уникальный. Если нет, то для обновления будет использовано случайное значение из всех возможных.