Первый запрос на обновление в зависимости от статуса:
UPDATE `order` o
JOIN Order_Detail od ON o.or_id = od.order_id
SET o.Status = 1
WHERE od.Status = 1
Второй запрос для получения:
SELECT DISTINCT order_id
FROM Order_Detail
WHERE status = 0
Примечание. Если у заказа 2 заказа, 1) со статусом = 0 и2) статус = 1. вышеупомянутый запрос будет включать этот порядок - поскольку есть строка со статусом = 0. Если вы хотите получить только идентификаторы заказа со всеми статусами = 0., используйте этот запрос:
SELECT order_id
FROM Order_Detail
GROUP BY order_id
HAVING SUM(status = 0) = COUNT(*)
Обновление: согласно комментариям, поскольку вы хотите установить статус = 1, только если все детали заказа равны 1, используйте этот запрос на обновление:
UPDATE `order` o
JOIN (
SELECT order_id
FROM Order_Detail
GROUP BY order_id
HAVING SUM(status = 1) = COUNT(*)
) og ON o.or_id = og.order_id
SET o.Status = 1