Autor Zpráva
Johnik
Profil
Zdravím,
mám tabulky PLAYED (ID, ID_SONG, timeAdd) a SONGS (ID, ...) a potřebuji vybrat nejpřehrávanější skladby za určité období, třeba týden zpět a vypsat název skladby a počet přehrání v tomto období.

Zkoušel jsem různé dotazy na tabulku PLAYED s GROUP BY ID_SONG, ale pak nedokážu získat počet přehrání, když to zgrupuju.

Neví někdo, jak napsat dotaz nebo klidně víc, zkrátka jak dostat potřebná data?

Děkuji
Tori
Profil
Píšu z hlavy, přibližně takto:
SELECT s.nazev, s.ID, count(*) 'pocet' 
  FROM SONGS s
  LEFT JOIN PLAYED p ON s.ID = p.ID_SONG
  WHERE p.timeAdd >= '2011-12-11'
  GROUP BY s.ID
  ORDER BY pocet DESC
  LIMIT 1
Předpokládám, že sloupeček played.timeAdd je typu datetime nebo date, a že datum (teď - týden) si poskládáte v PHP. Šlo by využít i MySQL funkce pro práci s daty (http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html).

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0