0
3つのテーブル間の2対1の関係で、dbの一部のフィールドを更新する際に助けが必要です。1対多のリレーションシップを更新する
多くのbox
には多くのfruits
を持つ現在の設定farmer
があります。
各農家が日中waranty期間(int型の列)が、それぞれの果実は有効期限があります(つまり、配信期間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
)
問題は、私が捕まってしまったということで、すべての果物の期限が切れていないボックスを除外する方法については考えています。 また、カウントを追加しようとしましたが、結果を残して残しましたが、まだ正常に動作していませんでした。
アドバイスをよろしくお願いいたします。