From: | Michael Renner <michael(dot)renner(at)amd(dot)co(dot)at> |
---|---|
To: | "Mag(dot) Dr(dot) Stefan Krejci" <office(at)skrejci(dot)com> |
Cc: | "<pgsql-de-allgemein(at)postgresql(dot)org>" <pgsql-de-allgemein(at)postgresql(dot)org> |
Subject: | Re: Mehrere Einträge anhand Primary-Key-Liste löschen |
Date: | 2012-07-21 14:03:04 |
Message-ID: | EAD1A350-C17A-4C35-85DD-3A04F59F8A0F@amd.co.at |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-de-allgemein |
Hey Stephan,
Schau die mal subselects an, damit sollte das kein Problem sein ;)
Lg,
Michael
Sent from my iPhone
On 21.07.2012, at 15:18, "Mag. Dr. Stefan Krejci" <office(at)skrejci(dot)com> wrote:
> Hallo!
>
> Ich lausche schon seit längerem dieser interessanten Mailinglist, weil ich selber viel mit PostgreSQL arbeite und so immer wieder auf interessante Tipps und Tricks stoße. Bis jetzt konnte ich all meine Probleme selber lösen, aber jetzt stehts bei mir grad an:
>
> Ich arbeite für eine kleine Bibliothek an einer Webapplikation, die soweit bereits seit einigen Monaten gut auf Basis von PostgreSQL läuft. Es gibt u.a. eine Tabelle mit Leserstammdaten (Leser), wo unter anderem das Geburtsdatum gespeichert ist. In einer anderen Tabelle sind alle Definitionen für Abonnements hinterlegt (LAbo), und in einer dritten Tabelle verknüpfe ich diese Daten (LxAbo).
>
> Die verschiedenen Abonnements müssen zu verschiedenen Zeitpunkten wieder rausgelöscht werden (z.B. am Ende des Jahres, oder am Ende eines Halbjahres). Es gibt aber auch ein spezielles Abonnement für Kindergarten-Kinder, wo das Abonnement erst rausgelöscht werden darf, wenn 2 Bedingungen zutreffen: 1. muss es Ende Juli eines Jahres sein, und 2. muss das Kind zu dem Zeitpunkt mind. 6 Jahre alt sein.
>
> Jetzt meine Frage: Brauche ich dafür tatsächlich mehrere Abfragen, die ich hintereinander ausführen muss, oder lässt sich das schon in einem Aufruf eleganter erledigen? Soweit bin ich ungefähr:
>
> =============================================
> SELECT lxabo."LxAboID”
> FROM "Leser" AS l, "LxAbo" AS lxabo
> WHERE ((((EXTRACT(YEAR FROM CURRENT_DATE)) - (EXTRACT(YEAR FROM l."LGebDat")) -
> (EXTRACT(DOY FROM CURRENT_DATE)<EXTRACT(DOY FROM l."LGebDat"))::integer) >= 6) AND
> (l."LID" = lxabo."LxAboLID") AND
> (lxabo."LxAboLAboID" = 'testAboID') AND
> (lxabo."LxAboBibID" = '40922002321'));
> =============================================
>
> ergibt korrekt:
>
> =============================================
> "f3f35a20b9985af4a46c2db8faeaeb3b“
> "2a1447bd485163afc3031930124ed504"
> usw.
> =============================================
>
> Ich bekomme also eine Liste von LxAboIDs, die ich jetzt alle in der Tabelle LxAbo rauslöschen müsste. Aber geht das direkt in PostgreSQL, oder muss ich das Ergebnis mit PHP auslesen und kann die Einträge dann erst aus der Tabelle löschen?
>
> Vielen Dank, Stefan
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Michael Renner | 2012-07-21 14:16:10 | Re: Frage Oracle Modus |
Previous Message | Mag. Dr. Stefan Krejci | 2012-07-21 13:18:54 | Mehrere Einträge anhand Primary-Key-Liste löschen |