Autor | Zpráva | ||
---|---|---|---|
unlucky Profil |
#1 · Zasláno: 28. 10. 2012, 15:11:10
potreboval bych vybrat 6 clanku, nejnoveji publikovane
tyto clanky seradit podle hodnoceni mam: select m.*, (r.totalpoints/ r.totalvotes) as rating from articles m left join ratings r on r.unique_name=m.id where m.publish_date < NOW() and m.active=1 and m.content !='' order by rating desc, m.id desc limit 6 Toto mi sice serazuje podle ratingu, ale bere je za cele obdobi od zacatku... |
||
Taps Profil |
#2 · Zasláno: 28. 10. 2012, 16:20:29
unlucky:
zkus použit between |
||
unlucky Profil |
#3 · Zasláno: 28. 10. 2012, 16:31:46
between potrebuje 2 parametry. Ja mam jenom now()
|
||
DJ Miky Profil |
#4 · Zasláno: 28. 10. 2012, 16:43:53
Tohle najednou nepůjde, musíš nejdřív poddotazem vybrat šest nejnovějších a pak teprve seřadit podle hodnocení, přibližně takhle (nezkoušel jsem):
SELECT a.*, (r.totalpoints / r.totalvotes) rating FROM articles a JOIN ( SELECT id FROM articles WHERE active = 1 AND content != '' AND publish_date < NOW() ORDER BY publish_date DESC LIMIT 6 ) nove ON (nove.id = a.id) LEFT JOIN ratings r ON (r.unique_name = a.id) ORDER BY rating DESC |
||
unlucky Profil |
#5 · Zasláno: 28. 10. 2012, 20:31:32
dekuji. funguje to skvele. Chtel jsem si to vyzkouset pres having
|
||
Časová prodleva: 12 let
|
0