У меня есть две таблицы в зависимости от пользователя и группы пользователей, так что каждый пользователь может быть назначен одной или нескольким пользовательским группам. Таблица пользователя содержит внешний ключ как group_id, когда содержит значения, разделенные запятыми идентификатора userGroup. Я хочу получить данные пользователя и разделенное запятыми имя_группы, с которым он связан в одном запросе. Есть ли какой-нибудь метод, который я могу достичь в SQL? Поля таблицы пользователя являются: (идентификатор, uname, group_id) UserGroup: (идентификатор, group_name)Использовать подзапрос в WHERE caluse в mysql
То, что я хочу, я получаю uname, GROUP_NAME, user.id, group.id в одном запросе SQL.
Я пробовал следующий запрос, но он дает мне ошибку
SELECT t1.uname, group_concat(t.group_name) FROM user t1
LEFT JOIN user_group t2
ON t1.group_id = t2.id
WHERE t2.id IN t1.group_id
Исходя из @ user2864740 замечания, необходимо нормализовать в три таблицы - User (UserId, Имя), Group (GroupId, Name) и UserGroup (UserId, GroupId). – StuartLC
Нормализовать ваши таблицы. Использование разделенных запятыми списков для хранения внешнего ключа приведет к множеству проблем и низкой производительности запросов. – user4035