Voglio che la mia lista di “Users_Who_Replied_To_A_Topic” includa il NOME dell’utente.
Ho provato a seguire una convenzione da un’altra discussione, che rende queste query di Data Explorer includano informazioni aggiuntive, ma non ha funzionato quando ho applicato la stessa sintassi.
Ecco la query che sto eseguendo ora, che restituisce solo lo “username” di coloro che hanno risposto a un argomento…
-- https://meta.discourse.org/t/68756/8?u=sidv
-- [params]
-- topic_id :topic_id = 536
SELECT u.username
FROM badge_posts p
JOIN topics t ON p.topic_id = t.id
JOIN users u ON p.user_id = u.id
WHERE t.id = :topic_id
GROUP BY p.user_id,u.username
Grazie per il rapido aiuto su questo, Jay! Ho aggiornato come segue, secondo il tuo suggerimento:
SELECT u.username, u.name
FROM badge_posts p
JOIN topics t ON p.topic_id = t.id
JOIN users u ON p.user_id = u.id
WHERE t.id = :topic_id
GROUP BY p.user_id,u.username
… e ho ottenuto questo errore…
PG::GroupingError: ERRORE: la colonna "u.name" deve apparire nella clausola GROUP BY o essere utilizzata in una funzione di aggregazione
RIGA 12: SELECT u.username, u.name
Quindi ho modificato la query come segue e ha funzionato alla perfezione!
SELECT u.username, u.name
FROM badge_posts p
JOIN topics t ON p.topic_id = t.id
JOIN users u ON p.user_id = u.id
WHERE t.id = :topic_id
GROUP BY p.user_id,u.username,u.name
Quindi, dal mio frammento originale, ho aggiunto quanto segue:
Alla riga “SELECT”: , u.name
Alla riga “GROUP BY”: ,u.name
Grazie ancora, @pfaffman, per avermi aiutato con questa sintassi!