Mysql Count und Update kombinieren

Hannibal

Erfahrenes Mitglied
Hallo, ich habe gerade ein kleines Problem und ich komme einfach nicht zu einer Lösung.

Kurz mein Problem: Also ich habe 2 Tabellen, eine Bilder und die andere Kategorien. Das ganze wird zum Upload von Bildern verwendet. Nun möchte ich in der Tabelle Kategorien in ein neues Feld die Anzahl der Bilder welche dieser Kategorie zugeordnet sind einbinden und diese zählen. Nun weiss ich aber nicht ganz wie ich das anstellen kann.

Die Tabellen sehen folgendermassen aus:

Bilder:
ID (ergibt dann 1.jpg, 2.jpg)
katID (entspricht der Kategorie Nr)
Desc (meine Textbeschreibung)

Kategorie
katID (Wird in Bilder als katID verwendet
Marke (Automarke)
Typ (Auto Typ etc.)
Anzahl (Hier möchte ich nun die Anzahl der Bilder welche Kategorie X zugeordnet sind einfüllen)


Also wie oben beschrieben möchte ich nun in das neue Feld Anzahl in der Tabelle Kategorie die jeweilige Anzahl der Bilder einfügen, welche diese Kategorie in katID enthalten.

Wie kann ich das nun auf alle Kategorien und Bilder mit einer Abfrage durchlaufen lassen?


Freundliche Grüsse
Hannibal
 
Hallo Hannibal,

das kannst du folgendermassen machen:

SQL:
update kategorie k 
   set k.anzahl_pics = 
  (select count(*) 
     from bilder b 
    where b.katID = k.katID);

hoffe, es hilft,
Markus
 
Hi, vielen Dank.

Logisch jetzt wo ich es vor mir sehe. Es geht vielen Dank.

Also es ging ein Stück weit und zwar scheint die Abfrage sehr Rechenintensiv zu sein. Denn mir ist der Server jetzt leider schon 3 x hängen geblieben. Also ca. 1/3 der Kategorien wurde aktualisiert dann musste ich aber neustarten.

Gibt es da irgend einen Typ? Das ganze "verlangsahmt" oder ähnlich ausführen zu können?

Danke :)
 
Hallo Hannibal,

also ich habs mal versucht nachzuvollziehen, bei mir ist es fix. Habs jetzt mal nachgestellt mit 100 Kategorien und 1000 Bildern.

Wieviele Bilder hast Du, wieviele Kategorien und wie oft soll das Skript denn aufgerufen werden? Ich dachte eigentlich du brauchst es nur einmal bzw. sehr unregelmässig und updatest die Anzahl direkt wenn du ein Bild hinzufügst bzw. löschst.

Markus
 
Zurück