Verknüpfte Datensätze löschen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Verknüpfte Datensätze löschen

    hi,

    ich habe 3 Tabellen welche in einer Beziehung zueinander stehen:

    address_company
    - address_contact
    --- address_history

    Nun möchte ich einen Datensatz aus company löschen und alle untergeordneten aus contact und history auch löschen.

    Mein Versuch bisher:

    DELETE address_company,address_contact, address_history FROM address_company,address_contact,address_history WHERE address_company.nID='7' AND address_contact.nCompanyID=address_company.nID AND address_history.nAdrID=address_contact.nID;

    Das Problem ist, daß er nur die Datensätze löscht, bei denen sowohl ein contact als auch ein zugehöriger history Eintrag besteht. Besitzt z.B. ein Contact keinen History-Eintrag, so wird dieser Contact nicht gelöscht...

    any ideas?

    Danke im vorraus!

  • #2
    Original geschrieben von DanyD
    Mein Versuch bisher:

    DELETE address_company,address_contact, address_history FROM address_company,address_contact,address_history WHERE address_company.nID='7' AND address_contact.nCompanyID=address_company.nID AND address_history.nAdrID=address_contact.nID;

    Das Problem ist, daß er nur die Datensätze löscht, bei denen sowohl ein contact als auch ein zugehöriger history Eintrag besteht. Besitzt z.B. ein Contact keinen History-Eintrag, so wird dieser Contact nicht gelöscht...
    Aber da löscht er auch die Einträge aus address_contact und address_history? Faszinierend!
    Wenn das da oben funktioniert, sollte es auch dies hier tun:

    DELETE * FROM address_company WHERE address_company.nID='7'
    left join address_contact ON address_contact.nCompanyID=address_company.nID
    left join address_history ONaddress_history.nAdrID=address_contact.nID;

    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #3
      thx für die schnelle Antwort, nur Leider geht die Query nicht.

      Löscht er auch die Datensätze aus den Unterkategorien (contact, history) mit, oder muß man das zwangsläufig innterhalb einer weiteren Abfrage machen?

      Es ist eine Adressdatenbank mit Firma und zugehörigen Ansprechpartnern. Wenn nun die Firma gelöscht wird sollen gleichzeitig alle dazugehörigen Ansprechpartner und deren History-Einträge gelöscht werden....

      Daniel

      [Editiert von DanyD am 01-03-2002 um 23:11]

      Kommentar


      • #4
        Ich meine du kannst es ja somachen wenn keine history vorhanden ist kannst du ja einen standard wert eintzen zb. - o.ä.

        wäre denke ich das einfachste und so werden alle daten glöscht.

        Auch wenn ich mich nicht auskenne mit verschachtelten tabellen.

        Könntest du mir da vielleicht mal ein beispiel schicken wie ich verschtelte tabellen erstelle ect bearbeite und so ??? vielleicht mit ner php datei oder so !!

        Kommentar

        Lädt...
        X