La tua sottoquery sta selezionando due colonne, mentre la stai usando per proiettare una colonna (come parte del SELECT
esterno clausola). Puoi selezionare solo una colonna da una query di questo tipo in questo contesto.
Considera l'idea di unirti agli users
tavolo invece; questo ti darà maggiore flessibilità nella selezione delle colonne che desideri da users
.
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