Voglio estrarre il numero di topics e di posts (distintamente) scritti in un determinato giorno, oltre all'ultimo messaggio dello stesso giorno; tutto questo con una sola query.
Uso questa query:
codice:
SELECT t.id AS idtopic,t.userid,t.tdata,t.oggetto,
p.topicid,p.userid,p.pdata,
COUNT(DISTINCT(t.id)) AS tot_topics,COUNT(DISTINCT(pp.id)) AS tot_posts,
u.nome,uu.nome,
IFNULL(p.pdata,t.tdata) AS ultimadata
FROM topics AS t, posts AS pp
LEFT JOIN posts AS p ON p.topicid=t.id
LEFT JOIN stanze AS s ON t.stanzaid=s.id
LEFT JOIN users AS u ON p.userid=u.id
LEFT JOIN users AS uu ON t.userid=uu.id
WHERE (p.pdata>='1165618800' OR t.tdata>='1165618800') AND s.privato='0' AND pp.pdata>='1165618800'
GROUP BY t.id ORDER BY ultimadata DESC LIMIT 1
Tutto ok, tranne che se sono stati scritti solo posts, avendo limitato ad 1, mi conta sempre 1 topic, anche se non ne è stato scritto nessuno. Praticamente quello che estrae è quello che restituisce per determinare l'ultimo messaggio scritto (sia esso un post che sia un topic, ndr). Il numero dei posts invece è sempre esatto.
Ho paura che non sia possibile fare ciò con una sola query, ma prima di arrendermi voglio chiedere a voi.
Ciaooooooo!!!!!!!