Ahoj, mám dvě tabulky denik a denik_komentare
denik má sloupce id, text, datum
denik_komentare id, id_denik, text, datum - sem se vkládají ke každému příspěvku komentáře
potřeboval bych dotaz, který by mi vypsal všechny řádky v deníku a k nim připsal počet komentářů (denik.id = denik_komentare.id_denik) - jak se taková věc udělá jedním dotazem?
předem díky
no vlastně ještě trochu komplikovaněji (neumím ani to předchozí)
potřeboval bych vypsat jen ty řádky z tabulky denik, ke kterým jsou nějaké komentáře novější než určité datum (datum posledního příhlášení uživatele) a připsat počet těch novějších komentářů.
treba nejak tak?
SELECT d.id, d.text, d.datum, COUNT(*) AS pocet FROM denik d JOIN denik_komentare k ON d.id=k.id_denik WHERE k.datum > _datum_posledni_navstevy_ GROUP BY d.id, d.text, d.datum
to s tim datem si asi musi upravit... zaprve ho nekde ho zjistit a za druhe zalezi asi na formatu, jak to datum do db ukladas, s tim moc zkusenosti nemam, ja to dycky delal jako unix timestamp :-)
no snad tam nejsou chyby
to je neuvěřitelný díky! upravil jsem si dotaz, protože tam je špatně propojení (musí být denik.id = denik_komentare.id_denik). pro ostatni (upravil jsem to ještě pro lamy jako jsem já):
$sql_komentare = "SELECT denik.id, denik.nazev, denik.datum, COUNT(*) AS pocet FROM denik JOIN denik_komentare ON denik.id = denik_komentare.id_denik WHERE denik_komentare.datum > '$naposledy_user' GROUP BY denik.id, denik.nazev, denik.datum";
$naposledy_user je datum poslední návštěvy
vsak to tam mam, ne? akorat jsem tabulku denik pro ten dotaz prejmenoval na d a denik_komentare na k - teda snad jsem v tom neudelal chybu. nebo ze by se to v te podmince spojeni nedalo pouzit? no nechce se mi to ted hledat...
prosim, rado se stalo.