Mailinglisten-Archive |
On Fri, Sep 06, 2002 at 05:16:12PM +0200, Beck, Mike wrote: moin, <snip> > es muss auch heissen: > SELECT `adressen`.`id` > FROM `adressen` > LEFT JOIN `dorf_kirche_mitglieder` ON `dorf_kirche_mitglieder`.`adressen_id` > = `adressen`.`id` > LEFT JOIN gemeinde_verwaltung_mitglieder ON > `gemeinde_verwaltung_mitglieder`.`adressen_id` = `adressen`.`id` > LEFT JOIN vereine_gewerbe ON `vereine_gewerbe`.`adressen_id` = > `adressen`.`id` aehm, hatten wir's nicht vom loeschen ? wenn ich jetzt die aufgabenstellung richtig verstanden habe, geht es darum, bestimmte unnoetige eintraege ueber mehrere relationen zu loeschen. z.b. sollen beim loeschen eines user-records auch die daran haengenden address-records entfernt werden ... table user: user_id int, firstname text, lastname text table addr: user_id int, city text, street text, nr text, pcode text wenn wir jetzt user#23 loeschen saehe das dann so aus: DELETE FROM user WHERE user_id = 23; DELETE FROM addr WHERE user_id = 23; wir koennen es uns aber auch einfacher machen, wenn wir eine entsprechende delete rule vorher definieren: CREATE RULE user_del AS ON DELTE TO user DO DELETE FROM addr WHERE addr.user_id = current.user_id ; dann wird bei jedem DELETE in 'user' auch der entsprechende addr-eintrag gekillt. wir koennen aber auch die addressen einfach drinlassen und hin und wieder einen gc allen alten muell wegraeumen lassen: DELETE FROM addr WHERE NOT EXISTS ( SELECT * FROM user WHERE addr.user_id = user.user_id ); ... ~-n -- Enrico Weigelt == metux ITS Webhosting ab 5 EUR/Monat. UUCP, rawIP und vieles mehr. phone: +49 36207 519931 www: http://www.metux.de/ fax: +49 36207 519932 email: contact_(at)_metux.de cellphone: +49 174 7066481 smsgate: sms.weigelt_(at)_metux.de --------------------------------------------------------------------- Diese Mail wurde mit UUCP versandt. http://www.metux.de/uucp/
php::bar PHP Wiki - Listenarchive