Ilja: MySQL + count

Beitrag lesen

yo,

ich pflege seit einigen Jahren eine Musikseite und möchte nun ermitteln wie lange schon ein Interpret mit seinem Titel in den CHarts ist. Eigentlich kein Problem. SELECT count(*) from top100 where Interpret='Gwen Stefani) and Titel='Cool' ergibt die Summe.

damit ermittelt man nicht wielange ein titel in den charts ist, sondern wieoft. das ist kleiner aber feiner unterschied. sicherlich kann man daraus auch einen zeitraum ermitteln, da die charts in regelmäßigen abständen erscheinen.

wo bekomme ich die Count Anweisung noch untergebracht.

mit einer "korelliereden" unterabfrage, was aber wohl erst ab mysql 4.1 und höher gehen wird. wenn das nicht geht, dann nimmst du die unterabfrage mit in die while schleife der ersten abfrage rein. btw., das * würde ich in diesem fall nicht verwenden, sondern die spaltennamen angeben.

SELECT tab1.*,
  (
  SELECT count(*)
  FROM top100 AS tab2
  WHERE tab2.Interpret= tab1.interpret
  AND tab1.Titel= tab2.titel
  ) AS Anzahl
FROM top100 AS tab1, woche
WHERE tab1.jahr='$jahr'
AND woche.jahr='$jahr'
AND tab1.KW='$kw'
AND woche.kw='$kw'
ORDER BY tab1.'Platz'
LIMIT $pos

PS: ich habe den eindruck, dass die verbindung der tabellen top100 und woche eventuell nicht ganz optimal wären. ist aber nur ein gefühl.

Ilja