Autor | Zpráva | ||
---|---|---|---|
ggAradS Profil * |
#1 · Zasláno: 15. 12. 2007, 12:05:15
Mam tabulku:
videnia (id, datum, idclanok) napr. 2, 2007-12-14 23:56:02, 254 A mna zaujima ako by vyzeral dotaz ktory vypise 10 najcitanejsich tyzdnov za poslednych 15 dni? Dakujem. |
||
djlj Profil |
#2 · Zasláno: 15. 12. 2007, 12:08:01
Musíš si nějak ukládat počet těch návštěv. Pak už jen ORDER BY navstevy DESC.
|
||
ggAradS Profil * |
#3 · Zasláno: 15. 12. 2007, 12:20:00
No ja mam ku kazdemu clanku uz sucet navstev ale vies ako zistim ze za poslednych 15 dni?
? |
||
Alphard Profil |
#4 · Zasláno: 15. 12. 2007, 12:38:49
http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#fu nction_date-add
konkrétně interval pro vytvoření časové podmínky když to groupneš podle idclanok a seřadíš s count() a použiješ limit, vysype to snad rovnou 10 nejčtenějších "id" za posledních 15 dní pro název článku bude potřeba ještě join |
||
ggAradS Profil * |
#5 · Zasláno: 15. 12. 2007, 12:43:30
vsetko chapem len nechapem este tu podmienku
WHERE datum > - 15 dni toto by si mi neporadil? Kukol som link, len mi to moc nedalo.. diky |
||
Alphard Profil |
#6 · Zasláno: 15. 12. 2007, 12:51:22
where datum > curdate() - interval 15 day
|
||
Alphard Profil |
#7 · Zasláno: 15. 12. 2007, 12:52:05
dodatek, je datum snad datového typu :-)
|
||
ggAradS Profil * |
#8 · Zasláno: 15. 12. 2007, 12:55:43
hej hej type: datetime...
diky |
||
ggAradS Profil * |
#9 · Zasláno: 15. 12. 2007, 21:47:53
No pocujte
Mam SELECT idclanok, count(*) as pocet FROM videnia WHERE datum > curdate() - interval 15 day GROUP BY idclanok ORDER BY pocet DESC LIMIT 10 a ono mi to pekne ide ale ja chcem este nazov clanku, len to tam neviem zakonponovat resp viem, ale nejde mi to SELECT z.idclanok, count(z.*) as pocet FROM zobrazenia z LEFT JOIN clanky c on z.idclanok = c.id WHERE z.datum > curdate() - interval 15 day GROUP BY z.idclanok ORDER BY z.pocet DESC LIMIT 10 A toto mi vobec neprebehne, co je zle? |
||
Alphard Profil |
#10 · Zasláno: 15. 12. 2007, 22:00:02
zkoušel jsi tohle?
SELECT z.* FROM zobrazenia z LEFT JOIN clanky c on z.idclanok = c.id zkontroluj sadu záznamů vrácenou po spojení, měla by být stejná, jako bez join |
||
ggAradS Profil * |
#11 · Zasláno: 15. 12. 2007, 22:04:00
Toto mi pekne ide
SELECT idclanok, count(*) as pocet FROM videnia WHERE datum > curdate() - interval 15 day GROUP BY idclanok ORDER BY pocet DESC LIMIT 10 ja tam chcem len doplnit left join ktory pirda nazov clanku ako? |
||
Alphard Profil |
#12 · Zasláno: 15. 12. 2007, 22:16:08
to ano, to už jsi psal
ale teď je to jen potřeba upravit, join vylaď na jednoduchém dotazu, až se dostaneš k původní struktuře, jenom s novým sloupcem (ten název), nebude problém dosadit to do původního kódu jinak těžko říct, v čem je problém, např. z SELECT z.idclanok, count(z.*) as pocet FROM je jasné, že ten název vůbec nevybíráš (jenom id a pocet) a to je právě potřeba vyladit na jednodušším dotazu |
||
ggAradS Profil * |
#13 · Zasláno: 15. 12. 2007, 22:24:22
tak poradis mi este raz aky dotaz mam vyskusat?
|
||
Alphard Profil |
#14 · Zasláno: 15. 12. 2007, 22:46:51
už jsem ti psal, aby jsi zkusil SELECT z.*, c.nazov FROM zobrazenia z LEFT JOIN clanky c on z.idclanok = c.id
já nenapíši z hlavy složitý dotaz, na to tady je kajman_ :-) jestli to zkoušíš někde v konzoli, tak chybný dotaz vypíše chybu a tak dále, víc ti neporadím |
||
ggAradS Profil * |
#15 · Zasláno: 15. 12. 2007, 23:35:13
noto ide, ale ako to zakonponovat do toho?
Mohol by pomoct kajman: :)) |
||
Alphard Profil |
#16 · Zasláno: 15. 12. 2007, 23:48:03
SELECT z.idclanok, count(z.*) as pocet, c.nazov
FROM zobrazenia z LEFT JOIN clanky c on z.idclanok = c.id WHERE z.datum > curdate() - interval 15 day GROUP BY z.idclanok ORDER BY z.pocet DESC LIMIT 10 |
||
ggAradS Profil * |
#17 · Zasláno: 16. 12. 2007, 13:24:05
nefunguje to:(I( vobec to neprebehne
|
||
Časová prodleva: 17 let
|
0