Mentre si lavora su un sistema che sto creando, ho cercato di utilizzare la seguente query nel mio progetto:MySQL - Operando dovrebbe contenere 1 colonna (s)
SELECT
topics.id,
topics.name,
topics.post_count,
topics.view_count,
COUNT(posts.solved_post) AS solved_post,
(SELECT users.username AS posted_by,
users.id AS posted_by_id
FROM users
WHERE users.id = posts.posted_by)
FROM topics
LEFT OUTER JOIN posts ON posts.topic_id = topics.id
WHERE topics.cat_id = :cat
GROUP BY topics.id
": cat" è vincolato dal mio PHP codice mentre sto usando PDO. 2 è un valore valido per ": cat".
Quella domanda mi dà però un errore: "# 1241 - Operando dovrebbe contenere 1 colonna (s)"
Cosa ceppi me è che io penso che questa query avrebbe funzionato senza alcun problema. Selezionare le colonne, quindi selezionarne altre due da un'altra tabella e continuare da lì. Non riesco a capire quale sia il problema.
C'è una soluzione semplice a questo o un altro modo per scrivere la mia query?
Grazie per la risposta. Risolverò la mia query e ti contrassegnerò come risposta, ma solo per l'input, pensi che ci sia un modo "migliore" per scrivere la mia query rispetto a quello che sto usando ora (ma anche ignorando l'errore in esso contenuto)? –
Ah. Grazie per la modifica sul tuo post originale. Sarò sicuro di segnarti come risposta quando StackOverflow me lo consente. Molte grazie! –
Bene, 'COUNT()' lancia un po 'le cose; la query che ho dato probabilmente darà un errore a causa dell'aggregazione. Potrebbe essere necessario spostare tale aggregazione in una sottoquery, a seconda degli obiettivi della query (che al momento non sono chiari). – cdhowie