Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL - L'operando deve contenere 1 colonna/e

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