Quero que minha lista de “Usuários_Que_Responderam_a_um_Tópico” inclua o NOME do usuário.
Tentei seguir uma convenção de outro tópico, que faz com que essas consultas do Data Explorer incluam informações adicionais, mas não funcionou quando apliquei a mesma sintaxe.
Aqui está a consulta que estou executando agora, que retorna apenas o “nome de usuário” daqueles que responderam a um tópico…
-- 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
Obrigado pela ajuda rápida nisso, Jay! Atualizei para o seguinte, conforme sua sugestão:
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 então recebi este erro…
PG::GroupingError: ERROR: a coluna "u.name" deve aparecer na cláusula GROUP BY ou ser usada em uma função de agregação
LINE 12: SELECT u.username, u.name
Então, alterei a consulta para o seguinte e funcionou perfeitamente!
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
Portanto, a partir do meu trecho original, adicionei o seguinte:
Na linha “SELECT”: , u.name
Na linha “GROUP BY”: ,u.name
Obrigado novamente, @pfaffman, por me ajudar com essa sintaxe!