Простой способ узнать, к каким группам тегов относится тег?

У меня был тег, который имел исключительно административное значение. Раньше я показывал его всем пользователям, но по сути это был просто шум для них, и кроме меня его никто не использовал.

Поэтому я добавил его в группу тегов, видимую только администраторам. Но он всё равно оставался видимым для всех. Сначала я был в восторге, потому что нашёл баг… но нет. Единственным багом, как выяснилось, снова был я.

Я также добавил этот тег ещё в три другие группы, которые были видны всем пользователям. Тег стал скрыт для обычных пользователей только после того, как я убрал его из этих групп, но поиск этих «пересекающихся» групп тегов требовал слишком много ручной работы :woozy_face:

Так вот, есть ли простой способ узнать, в какие группы добавлен тот или иной тег?

Конечно, через SQL, но я не владею этим языком. И когда я обращался за советом к чат-боту, я, вероятно, не был достаточно конкретен.

Думаю, это указано на странице тега с помощью гаечного ключа тега (или кнопки «информация», если вы не сотрудник):

О, ради бога, разрешены ли здесь матерные слова — насколько же мужчина может быть невнимательным :man_facepalming: Я должен был это знать, но когда я был на странице тега, мне даже в голову не приходило думать в таком направлении. Хороший пример ограниченности мышления.

Ну, на сегодня достаточно самобичевания :winking_face_with_tongue:

Но… ты умеешь работать с SQL, и я уверен, что ты умеешь общаться с ИИ лучше меня. Есть ли у нас возможность задать этот вопрос базе данных? И это чистое любопытство, а не необходимость.

Запрос, который выводит теги и содержит столбец со всеми связанными с ними группами тегов?

Это должно быть возможно с помощью чего-то подобного:

SELECT 
    t.name AS "Тег",
    STRING_AGG(tg.name, ', ' ORDER BY tg.name) AS "Группы тегов"
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

Это хорошая отправная точка. Спасибо!