N>Да, у пользователя есть всегда определённая первичная группа, но на разных серверах он может иметь различный набор вторичных групп. Первый запрос возвращает gid первичной группы и перечисление через запятую вторичных. Второй запрос для gid пользователя возвращает её имя. Во втором запросе я ошибся(переделывал его из первого), группировать надо по полю su.id.
SELECT
u.id, u.a, u.b
, (select name from Table3 pg on u.gid=pg.gid) primary_group_name
,GROUP_CONCAT(g.name) AS secondary_group_names
FROM
Table2 u
left join Table1 su on su.id=u.id
left join Table3 g on su.g_id=g.g_id
WHERE
su.name='SOMENAME'
group by
u.id
,u.a -- вот это МайСКЛ позволяет не делать, но я рекомендую тебе не пользоваться такими хаками
,u.b -- вот это МайСКЛ позволяет не делать, но я рекомендую тебе не пользоваться такими хаками
ORDER BY
u.id