Update values in one table based on contents of another Software Name: Oracle SQL Developer Version 17.2.0.188

I have three tables: orders, order_details, and products.

I wanted to run a query to update units_in_stock in the products table based on quantity in order_details, where the associated orders row has been marked as shipped, and has a shipping date.

Here's what I tried:

UPDATE Products SET (Products.Unit_In_Stock = Products.Unit_In_Stock - Order_Details.Quantity)
INNER JOIN (
    Orders INNER JOIN Order_Details ON Orders.Order_ID = Order_Details.Order_ID
    ) ON Products.Product_ID = Order_Details.Product_ID
WHERE (
        ((Orders.Shipped_Date) IS NOT NULL)
        AND ((Orders.This_Order_Was_Shipped) = "YES")
        );


When I run this, I get:

Error at Command Line : 1 Column : 45


Line 1, Column 45 is the equal sign in the very first statement that said

Products.Unit_In_Stock = Products.Unit_In_Stock - Order_Details.Quantity


Can you help me get this working?
Looks like this should do it for Oracle:

UPDATE Products 
SET Products.Unit_In_Stock = Products.Unit_In_Stock - 
(
    SELECT Order_Details.Quantity
    FROM Orders 
        INNER JOIN Order_Details 
        ON Orders.Order_ID = Order_Details.Order_ID
    WHERE Products.Product_ID = Order_Details.Product_ID 
    AND (Orders.Shipped_Date IS NOT NULL) 
    AND (Orders.This_Order_Was_Shipped = "YES")
)
WHERE EXISTS
(
    SELECT Order_Details.Quantity
    FROM Orders 
        INNER JOIN Order_Details 
        ON Orders.Order_ID = Order_Details.Order_ID
    WHERE Products.Product_ID = Order_Details.Product_ID 
    AND (Orders.Shipped_Date IS NOT NULL) 
    AND (Orders.This_Order_Was_Shipped = "YES")
);