Я новичок в SQL-запросах, но мне нужно изменить столбец таблицы относительно столбца другой таблицы.На данный момент у меня работает следующий запрос:
UPDATE table1
SET date1=(
SELECT last_day(max(date2))+1
FROM table2
WHERE id=123
)
WHERE id=123
AND date1=to_date('31/12/9999', 'dd/mm/yyyy');
Проблема с этой структурой заключается в том, что, я полагаю, запрос SELECT будет выполняться для каждой строки table1
.Поэтому я попытался создать еще один запрос, но у него есть синтаксическая ошибка где-то после ключевого слова FROM
:
UPDATE t1
SET t1.date1=last_day(max(t2.date2))+1
FROM table1 t1
INNER JOIN table2 t2
ON t1.id=t2.id
WHERE t1.id=123
AND t1.date1=to_date('31/12/9999', 'dd/mm/yyyy');
И, кроме того, я даже не знаю, быстрее ли он, чем первый...
У вас есть идеи, как я могу решить эту проблему?
Большое спасибо!
С уважением,
Жюльен