To što si stavio "as nid" ne znaci da mozes da koristis nid u where uslovu. To nid ti sluzi samo u rezultatu upita da se naziv kolone ne zove news_id nego nid.
A ako hoćeš da ti radi upit stavi news_id u where uslovu..
To sam video i bilo mi je logicno da zbog GROUP BY, COUNT(*) AS cnt nije izracunat. S druge strane milsio sam da se to neodnosi na moj primer jer sam samo napravio alias na kolonu koja vec postoji - news_id AS nid.
To znaci da bi upit bio validan moram da uradim ovako nesto (2 puta ponovim isto racunjanje)
Code: SELECT user_id, TIMESTAMPDIFF(YEAR, user_dob, NOW()) AS age
FROM users
WHERE TIMESTAMPDIFF(YEAR, user_dob, NOW()) > 18
357 - da, stim da ce upit da radi hiljadama puta brze ako umesto
WHERE ... TIMESTAMPDIFF(YEAR, user_dob, NOW()) > 18 ...
stavis
WHERE ... user_dob < now() - interval 1 year ...
u prvom slucaju imao/nemao index nad user_dob radis full table scan dok u drugom slucaju ako imas index nad user_dob radis range scan nad indexom sto je mnoooogo brze
nikola - having je zeznut zato se uslov proverava nad vec dobijenim rezultatom tako da je spor