Re: Mehrere Einträge anhand Primary-Key-Liste löschen

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
>
>

In response to

Responses

Browse pgsql-de-allgemein by date

  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