태그가 속한 태그 그룹을 쉽게 찾는 방법?

관리자 전용 의미만 가진 태그가 하나 있습니다. 이전에는 모든 사용자에게 표시했지만, 실제로는 그들에게는 그저 노이즈일 뿐이고 저를 제외하고는 아무도 사용하지 않았습니다.

그래서 관리자만 볼 수 있는 태그 그룹에 추가했습니다. 하지만 여전히 모든 사용자에게 표시되었습니다. 처음에는 버그를 찾았다고 좋아했지만, 결국 다시 한 번 제 실수였습니다.

해당 태그를 다른 세 개의 그룹에도 나열해 두었고, 그 그룹들은 모두 모든 사용자에게 표시되었습니다. 다른 그룹들에서 해당 태그를 정리했을 때 일반 사용자로부터 숨겨졌지만, 이러한 ‘겹치는’ 태그 그룹을 찾는 데는 너무 많은 수작업이 필요했습니다 :woozy_face:

그래서, 어떤 그룹에 태그가 추가되었는지 쉽게 확인할 수 있는 방법이 있을까요?

물론 SQL을 사용할 수 있지만, 저는 SQL을 잘 모릅니다. 그리고 챗봇에게 조언을 구했을 때 제가 충분히 구체적으로 질문하지 못한 것 같습니다.

태그 페이지에서 태그 렌치(/info 버튼, 스태프가 아닌 사용자의 경우)를 사용하면 알려주는 것 같습니다:

아, are f-words allowed here를 위해서 — 남자가 얼마나 무지할 수 있는지 :man_facepalming: 나는 알았어야 했는데, 태그 페이지에 있을 때 그 길을 생각해 본 적이 한 번도 없었어. 제한된 사고의 좋은 예시야.

자, 오늘은 이 정도면 자기 징벌이 충분해 :winking_face_with_tongue:

하지만… 너는 SQL을 할 수 있고, AI와 대화하는 건 나보다 더 잘할 거라고 확신해. 데이터베이스에 그걸 물어볼 수 있는 기능이 있어? 그리고 이건 순수한 호기심이지, 더 이상 필요는 아니야.

태그를 나열하고 각 태그에 연결된 모든 태그 그룹을 한 열로 표시하는 쿼리는 어떻게 작성할 수 있을까요?

다음과 같은 방식으로 가능할 것입니다:

SELECT 
    t.name AS "Tag",
    STRING_AGG(tg.name, ', ' ORDER BY tg.name) AS "Tag Groups"
FROM tags t
  JOIN tag_group_memberships tgm ON tgm.tag_id = t.id
  JOIN tag_groups tg ON tg.id = tgm.tag_group_id
GROUP BY t.name

좋은 출발점이네요. 감사합니다!