phpbar.de logo

Mailinglisten-Archive

[php] id aus mehreren tabellen selectieren und gruppieren

[php] id aus mehreren tabellen selectieren und gruppieren

Enrico Weigelt php_(at)_phpcenter.de
Sat, 7 Sep 2002 09:49:22 +0200


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