Hallo nochmal,
Du hattest recht. Es ist halb so wild
SELECT * , COUNT( * )
FROM filmtag
WHERE film
IN (
SELECT film
FROM filmtag
WHERE tag =179777
)
GROUP BY tag
ORDER BY COUNT( \* )
DESC
Jetzt aberdas Problem. Ich habe bisher das ganze in PHP gelöst. Also zuerst alle Filme suchen, die das jeweilige Tag haben. Dann alle Filme in einer Schleife durchgehen und jeweils die Tags in ein Array schreiben bzw. den Wert des Arrays um eins erhöhen.
Danach das Array sortieren und ausgeben.
Klingt unglaublich kompliziert (und ist es ja auch) und ich habe mir von einer SQL Lösung eine deutlich bessere Performance erwartet. Dazu muss gesagt werden, dass die Zuordnung derzeit ca 200.000 Einträge hat. Lustig an der Sache ist, dass die PHP Lösung ca 1 Sekunde braucht, die Verschachtelte SQL Abfrage aber 25 Sekunden .......
Hab ich einen Performancefehler in meiner Abfrage oder ist da einfach die händische Lösung besser. Schon erstaunlich. Macht nicht SQL intern genau das, was ich in PHP mache ????
marcus