Your subquery is selecting two columns, while you are using it to project one column (as part of the outer
SELECT clause). You can only select one column from such a query in this context.
Consider joining to the
users table instead; this will give you more flexibility when selecting what columns you want from
SELECT topics.id, topics.name, topics.post_count, topics.view_count, COUNT( posts.solved_post ) AS solved_post, users.username AS posted_by, users.id AS posted_by_id FROM topics LEFT OUTER JOIN posts ON posts.topic_id = topics.id LEFT OUTER JOIN users ON users.id = posts.posted_by WHERE topics.cat_id = :cat GROUP BY topics.id