“Users_Who_Replied_To_A_Topic” 목록에 사용자의 이름(NAME)도 포함되도록 하고 싶습니다.
다른 스레드에서 확인한 관례에 따라 Data Explorer 쿼리에 추가 정보를 포함하는 방법을 시도해 보았지만, 동일한 구문을 적용했을 때는 작동하지 않았습니다.
현재 실행 중인 쿼리는 해당 주제에 답글을 남긴 사용자의 "username"만 반환합니다…
-- 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
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
…그랬더니 이런 오류가 떴어…
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
그래서 쿼리를 아래처럼 바꿨더니 완벽하게 동작했어!
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