Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL - L'opérande doit contenir 1 colonne(s)

Votre sous-requête sélectionne deux colonnes, tandis que vous l'utilisez pour projeter une colonne (dans le cadre de l'élément externe SELECT clause). Vous ne pouvez sélectionner qu'une seule colonne d'une telle requête dans ce contexte.

Envisagez de rejoindre les users table à la place ; cela vous donnera plus de flexibilité lors de la sélection des colonnes que vous voulez des 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