Zadejte hledaný výraz...

Subselect a funkce DATE_ADD?

MD1
verified
rating uzivatele
25. 10. 2013 09:26:12
Pěkný den,
mám problém s následujícím dotazem:
SELECT
(SELECT COUNT(id) FROM forum_post fp
WHERE fp.forum_thread_id = t.id AND fp.deleted = 0 AND fp.first = 0) as total_replies
,(SELECT COUNT(id) FROM forum_post p
WHERE p.forum_thread_id = t.id AND p.deleted = 0 AND p.first = 0
AND (p.created > DATE_ADD(NOW(), INTERVAL - 7 day))) as last_replies
,t.*
FROM forum_thread t
WHERE t.deleted = 0
ORDER BY last_replies DESC
LIMIT 7;
Dotaz je ze dvou tabulek, forum_thread a forum_post a má zobrazit posledních 7 diskusí (témat čili řádky z tabulky forum_thread) spolu s celkovým počtem příspěvků v dané diskusi (total_replies) a nových za poslední týden (last_replies) z tabulky forum_post.
Tak jak dotaz je, tak zobrazí sloupec total_replies a last_replies špatně.
Když spustím jednotlivý dotaz pro danou diskusi, tak se oba provedou správně.
Pokud zakomentuju subselect last_replies tak sloupec total_replies mi hodí správně (last_replies opět špatně, všude 0).
Když umažu tu poslední podmínku u last_replies
( AND (p.created > DATE_ADD(NOW(), INTERVAL - 7 day)))
tak už to vyhodí číslo, ale to jsou opět všechny příspěvky (total_replies).
Je možné že je problém s DATE_ADD v subselectu příp někde je jiná chyba (dva subselecty ap.)?
dotazy: http://d.pr/i/FEZ4
tabulky: http://d.pr/i/INBI
25. 10. 2013 09:26:12
https://webtrh.cz/diskuse/subselect-a-funkce-date_add/#reply959194
SmartApps s.r.o.
verified
rating uzivatele
(2 hodnocení)
25. 10. 2013 22:53:21
Ahoj,
skus ( AND (p.created > (NOW(), INTERVAL - 7 day)))
25. 10. 2013 22:53:21
https://webtrh.cz/diskuse/subselect-a-funkce-date_add/#reply959193
MD1
verified
rating uzivatele
27. 10. 2013 12:26:46
nn, problém bude že přidáním té podmínky se ovlivní celý dotaz... ne jen ten poddotaz
27. 10. 2013 12:26:46
https://webtrh.cz/diskuse/subselect-a-funkce-date_add/#reply959192
Pro odpověď se přihlašte.
Přihlásit