Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL - Operand sollte 1 Spalte(n) enthalten

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