Okay ich habs fast!
SELECT t1.threadid ,t1.threadtitel,t1.threadtype,t1.postcounter , COUNT(t4.postid) AS numPosts
FROM mainproject.board_thread AS t1
LEFT JOIN mainproject.board_category AS t2 ON categoryname='".db::escape($tag)."'
LEFT JOIN mainproject.users_follow_disc AS t3 ON t3.uid=".$_SESSION['userid']." AND t3.tid=t1.threadid
LEFT JOIN mainproject.board_post AS t4 ON t4.creationtime > t3.thetime AND t4.threadid=t1.threadid
WHERE t1.categoryid=t2.categoryid
GROUP BY t1.threadid,t1.threadtitel,t1.threadtype,t1.postcounter
ORDER BY postcounter
Nun. Jetzt liest er die Anzahl aller Posts aus irgendwie. Ich kann nicht genau definieren was er macht. Er gibt mir wenn ich einen neuen Post mache irgendwo, anschließend die Anzahl aller Posts in diesem Thread aus.
Das Problem liegt denk ich hier:
[1]
LEFT JOIN mainproject.users_follow_disc AS t3 ON t3.uid=".$_SESSION['userid']." AND t3.tid=t1.threadid
und hier
[2]
LEFT JOIN mainproject.board_post AS t4 ON t4.creationtime > t3.thetime AND t4.threadid=t1.threadid
Denn bei [1] müsste die Ergebnismenge auf 1 reduziert werden, so das am Ende nur "das letzte mal als er die Diskussion angesehen hat" geliefert wird.
In Form eines Subselects gehts nicht weil er dann die Threadid nicht hat, diese liegt ja in einer anderen Ebene und kommt aus t1.
[2] müsste anschließend diesen Zeitpunkt bekommen (t3.thetime) muss also ersetzt werden.
Hoffe du kannst mir helfen.
Lg, Joe