Ihre Unterabfrage wählt zwei Spalten aus, während Sie sie verwenden, um eine Spalte zu projizieren (als Teil des äußeren SELECT
Klausel). Sie können in diesem Kontext nur eine Spalte aus einer solchen Abfrage auswählen.
Erwägen Sie, den users
beizutreten Tisch statt; Dadurch erhalten Sie mehr Flexibilität bei der Auswahl der gewünschten Spalten von 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