Ich brauche Hilfe bei der Aktualisierung einiger Felder in der Datenbank in zwei Eins-zu-viele-Beziehungen zwischen 3 Tabellen.Aktualisierung einer zu vielen Beziehung
Ich habe die aktuelle Einrichtung farmer
, die viele box
hat, die viele fruits
haben.
Jeder Bauer hat einen waranty Zeitraum in Tagen (int Spalte), jede Frucht hat ein Ablaufdatum (das hängt von der Lieferzeit NOW() - fruit.expiry_date > farmer.days
)
Mein Ziel ist es, die Box zu setzen, wie abgelaufen, aber nur, wenn alle Früchte in der Box sind abgelaufen.
Dies ist, was ich mit endete haben:
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
)
Das Problem ist, dass ich stecken geblieben, und haben keine Ahnung, wie die Boxen auszuschließen, dass alle Früchte nicht abgelaufen haben. Ich habe auch versucht, eine Zählung hinzuzufügen, dann links verbinden das Ergebnis, aber immer noch nicht richtig funktioniert.
Jeder Rat ist willkommen.