Вывести на просмотр:
SELECT p.price, od.quantity,
p.price * od.quantity as cost -- в выборке можно не только поля выбирать, но и делать любые сложные матем. операции в пределах сопоставляемых строк и агрегированных функций
FROM products p
JOIN orderdetails od ON p.productid = od.productid -- ну, так соединяйте по ключам. Что мешает?
Where od.orderid = ? -- если нужно ограничиться в пределах заказа
Применить изменения:
update orderdetails
set orderdetails.totalcost = ( select p.price * orderdetails.quantity
from products p
where orderdetails.productid = p.productid
) -- вычисляем цену из таблицы продуктов и изменяем ее в деталях
where orderdetails.orderid = ? -- если нужно ограничиться в пределах заказа
and exists (select 1
from products p
where orderdetails.productid = p.productid
) -- выбираем детали заказа только по тем продуктам, которые есть в продуктах, можно добавить доп. ограничения по затрагиваемым деталям
Можно навешать триггер на вставку, изменение таблицы orderdetails. Тогда при изменении количества, цена будет пересчитываться с помощью него автоматически.
Основа триггера:
update orderdetails
set orderdetails.totalcost = ( select p.price * new.quantity
from products p
where orderdetails.productid = p.productid
) -- вычисляем цену из таблицы продуктов и изменяем ее в деталях
where orderdetails.orderdetailid = new.orderdetailid
PS: Если это учебная база данных, то сойдет. А если реально используется такая модель, то не хватает таблицы "Цена продукта по состоянию на".