Rico: Löschabfrage für MySQL und PHP?

Moin moin,

ich habe folgendes Problem. Es sind 2 Tabellen ( Personen und Einrichtungen ). Jede Person kann mehrere Einrichtungen haben. Verknüpft sind diese über person.id und einrichtung.person_id. Wie lösche ich jetzt alle Einrichtungen, zu der es keine Person mehr gibt (wurden gelöscht). Gibt es da einen SQL Befehl?

Danke Rico

  1. Hallo!

    Tut mir leid, dass ich das hier schreibe.
    Aber immer wenn ich selber posten will erhalte ich nur eine Fehlermeldung.
    Wisst ihr was da los ist ?

    Dank und Gruß
            Christian

  2. Aloha!

    ich habe folgendes Problem. Es sind 2 Tabellen ( Personen und Einrichtungen ). Jede Person kann mehrere Einrichtungen haben. Verknüpft sind diese über person.id und einrichtung.person_id. Wie lösche ich jetzt alle Einrichtungen, zu der es keine Person mehr gibt (wurden gelöscht). Gibt es da einen SQL Befehl?

    Du bist da auf ein diffiziles Problem gestoßen. Und so, wie du es schilderst, vermute ich, daß mehr dahintersteckt, als du bislang erwähnt hast.

    Zunächst zu dem, was du gesagt hast: Wenn es tatsächlich so ist, daß deine Personen und Einrichtungen in einer 1:m-Beziehung stehen, dann mußt du die Einrichtungen, die mit Person X in Beziehung stehen, dann löschen, wenn du Person X löschst.

    Also
    DELETE FROM person WHERE id = X;
    DELETE FROM einrichtung WHERE person_id = X;

    Deine Schilderung ist etwas vage, und allein anhand der Begriffe "Person" und "Einrichtung" kann ich mir nicht so ganz vorstellen, daß du tatsächlich eine 1:m-Beziehung hast. Mehrere Einrichtungen können zu einer Person gehören, aber auch mehrere Personen zu einer Einrichtung. Das wäre eine n:m-Beziehung, und da wird es schon komplizierter, weil du zwar Person X löschen mußt, aber nicht zwangsweise alle ihr zugeordneten Einrichtungen - weil es Person Y geben könnte, die dieser Einrichtung auch zugeordnet ist.

    - Sven Rautenberg