Мне нужна помощь в обновлении некоторых полей в db в двух отношениях «один ко многим» между тремя таблицами.Обновление отношения «один ко многим»
У меня есть текущая установка farmer
, которая имеет много box
, которые имеют много fruits
.
Каждый фермер имеет период Waranty в днях (ИНТ столбец), каждый плод имеет срок годности (что зависит от срока поставки NOW() - fruit.expiry_date > farmer.days
)
Моя цель состоит в том, чтобы установить окно, как истек, но только если все фрукты в коробке истекли.
Это то, что я закончил с:
UPDATE
boxes
SET
expired = true
WHERE id IN (
SELECT
boxes.id
FROM
fruit, boxes, farmer
WHERE
fruit.box_id = boxes.id AND
boxes.farmer_id = farmer.id AND
DATE_PART('day', now() - fruit.expiry_date) > farmer.waranty_days AND
boxes.expired = FALSE
)
Проблема заключается в том, что я застрял, и не имею ни малейшего представления о том, как исключить коробки, которые не имеют все плоды истекли. Я также попытался добавить счет, а затем влево присоединиться к результату, но все же он не работал должным образом.
Любые советы приветствуются.