Mailinglisten-Archive |
Thomas Wolf wrote:
> hallo liste
> es ist mal wieder soweit das wir unser system umstellen und in diesem zuge
> möchte ich die gesamte struktur bereinigen.
> mein prob ist das ich zwei tabellen habe mit content und dazu eine
> membership tabellen
> in den content tabelen habe ich eine spalte namens memberid welche auf die
> membership tabel spalte id verweist.
> jedoch nach mehreren umstellungen sind einige member gelöscht worden und so
> fehlen die bezüge dazu.
> jetzt möchte habe ich einen sammelmember angelegt und diesen sämtlichen
> content zuweisen.
> kann mir da jemand einen denkanstoss geben?
na den sammelmember anlegen
alle datensätze in cntent suchen die keinen existierenden member mehr in
der meber-tabelle haben und diesen die id von deinem sammel-meber geben
was du dazu brauchst ist nen LEFT JOIN und ne prüfung auf NULL
http://www.mysql.com/doc/en/Problems_with_NULL.html
ab MySQL 4.0.4 geht das alles in einem query
http://www.mysql.com/doc/en/UPDATE.html#IDX1448
*ungeprüft*
UPDATE content
LEFT JOIN member
ON content.member_id = member.id
SET content.member_id = [sammel_member_id]
WHERE member.id IS NULL
für ältere versionen brauchst du zwei
erst alle ID's der verweißten 'content'-datensätze suchen und bei diesen
dann im zweiten query die meber-id aktualisieren
*ungeprüft*
SELECT content.id
FROM content
LEFT JOIN member
ON content.member_id = member.id
WHERE member.id IS NULL
*ungeprüft*
UPDATE content
SET content.member_id = [sammel_member_id]
WHERE content.id IN ([ids_aus_vorigem_query])
--
Sebastian Mendel
www.sebastianmendel.de
www.tekkno4u.de
www.nofetish.com
--
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive