I have the following query -- I'd like to think that this query and others like it are inefficient, and that perhaps there is a better way to do this with multiple joins. But, I've really only had queries with single joins before and I'm having a hard time wrapping my head around how I might better optimize this query.

Please bear with me if my query is ugly! I would absolutely appreciate any help that anyone is willing to give. The following is for a very simple forum, and is for displaying the threads contained within the specified forum. The subqueries are to get "other" information, like the number of posts in the thread, the last read post in this thread by this particular user, the last post's ID/date/author and that poster's usergroup. And then, I have a left join on the aid (author's ID) to grab the author's name, email, group, etc. Rather than trying to format the query myself, this is how phpMyAdmin shows it!

Code:
SELECT th.id, th.title, u.name, u.group, u.email, th.date, (

SELECT COUNT( p.id ) 
FROM forum_posts p
WHERE p.tid = th.id
) AS posts, (

SELECT r.lastpostread
FROM forum_threads_read r
WHERE r.uid =1
AND r.tid = th.id
) AS lastpostread, (

SELECT po.id
FROM forum_posts po
WHERE po.tid = th.id
ORDER BY po.id DESC 
LIMIT 1 
) AS lastpostid, (

SELECT po.date
FROM forum_posts po
WHERE po.tid = th.id
ORDER BY po.id DESC 
LIMIT 1 
) AS lastpostdate, (

SELECT us.name
FROM forum_posts po
LEFT JOIN users us ON po.aid = us.id
WHERE po.tid = th.id
ORDER BY po.id DESC 
LIMIT 1 
) AS lastpostuser, (

SELECT us.group
FROM forum_posts po
LEFT JOIN users us ON po.aid = us.id
WHERE po.tid = th.id
ORDER BY po.id DESC 
LIMIT 1 
) AS lastpostusergroup

FROM forum_threads th
LEFT JOIN users u ON th.aid = u.id
WHERE th.fid =2
ORDER BY th.sticky DESC , th.date DESC
The thing I'm particularly worried about, for example, is the fact that I have at least three different subqueries all referencing forum_posts, but I can't return multiple values with a subquery. Could all of that be done a simpler way?

edit: oh, and I'm not even sure if I should be posting sample copies of my tables, or if this query is sufficient enough.