also MySQL 4.1.15 im Einsatz
hab zwei Tabellen..
a) Owner (ID,OwnerKey,Count)
b) Objects (ObjKey,OwnerKey,....)
ganz simpel möchte ich folgendes erreichen:
da in Objects ein Owner mehrere Objekte besitzen kann
möchte ich sie zählen und das ergebnis in die erste tabelle übertragen
sollte kein Objekt zum Besitzer gefunden werden also auch die 0
a)
erster Gedanke war eine PHP-Schleife die
jede Reihe in Owner durchgeht (Variable=OwnerKey)
und mit
SELECT count(*) FROM Objects WHERE OwnerKey=Variable GROUP BY Variable
einzeln das Ergebnis mit einer UPDATE einzutragen
Meinung: das dauert doch viel zu lange
b)
zweiter Gedanke war die Spalte mit 0 zu füllen
und eine Ergebnistabelle der Form aus
SELECT OwnerKey,count(*) FROM Objects GROUP BY OwnerKey
in die Tabelle zu übertragen (Multiple Update)
hier muss ich aber leider passen
da z.b. offensichtlich UPDATE keine VALUES zulässt
z.B.
UPDATE Owner SET Count=0
UPDATE Owner SET Count=(SELECT count(*) FROM Objects GROUP BY OwnerKey) WHERE OwnerKey=(SELECT OwnerKey FROM Objects GROUP BY OwnerKey)
ist meiner Meinung nach das Gesuchte..
aber irgendwas sagt mir dass das eventuell zu Problemen führt
überlege noch anlegen einer temporären Tabelle
und dann UPDATE mit JOIN
nun die Frage an die Experten hier:
wie würdet es Ihr machen
und Extra. lässt sich das Problem mit der 0
gleich mit einbinden
sodass es optimalerweise nur noch eine einzige UPDATE-Anweisung ist
Danke jedenfalls für Antworten in Voraus