Autor Zpráva
ggAradS
Profil *
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
Musíš si nějak ukládat počet těch návštěv. Pak už jen ORDER BY navstevy DESC.
ggAradS
Profil *
No ja mam ku kazdemu clanku uz sucet navstev ale vies ako zistim ze za poslednych 15 dni?
?
Alphard
Profil
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 *
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
where datum > curdate() - interval 15 day
Alphard
Profil
dodatek, je datum snad datového typu :-)
ggAradS
Profil *
hej hej type: datetime...


diky
ggAradS
Profil *
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
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 *
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
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 *
tak poradis mi este raz aky dotaz mam vyskusat?
Alphard
Profil
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 *
noto ide, ale ako to zakonponovat do toho?

Mohol by pomoct kajman: :))
Alphard
Profil
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 *
nefunguje to:(I( vobec to neprebehne

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