Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Verknüpfte Datensätze löschen [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
brauche Webseite ideal für Vereine und Firmen
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Verknüpfte Datensätze löschen


 
DanyD
01-03-2002, 16:40 
 
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!

 
Titus
01-03-2002, 19:40 
 
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;

 
DanyD
01-03-2002, 19:48 
 
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]

 
Snoopreal
21-08-2002, 15:28 
 
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 !!

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:15 Uhr.