Quiero que mi lista de “Usuarios_Que_Respondieron_A_Un_Tema” incluya el NOMBRE del usuario.
Intenté seguir una convención de otro hilo, que hace que estas consultas de Data Explorer incluyan información adicional, pero no funcionó cuando apliqué la misma sintaxis.
Aquí está la consulta que estoy ejecutando ahora mismo, que solo devuelve el “nombre de usuario” de quienes respondieron a un tema…
-- 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
¡Gracias por la ayuda rápida, Jay! Actualicé lo siguiente, según tu sugerencia:
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
… y luego obtuve este error…
PG::GroupingError: ERROR: column "u.name" must appear in the GROUP BY clause or be used in an aggregate function
LINE 12: SELECT u.username, u.name
Así que cambié la consulta a la siguiente y funcionó a la perfección.
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
Entonces, a partir de mi fragmento original, agregué lo siguiente:
A la línea “SELECT”: , u.name
A la línea “GROUP BY”: ,u.name
Gracias de nuevo, @pfaffman, por ayudarme con esta sintaxis.