Mysql Select по нескольким значениям одного поля

Рейтинг: 1Ответов: 1Опубликовано: 29.09.2014

Есть таблица users
user_id | user_name | user_groups
1 | Ваня | 1 , 3

groups
group_id | group_name |
1 | one
2 | two
3 | three

Соответственно, в таблице users в поле user_groups указаны id в таблице groups.
Нужно выдернуть Ваню с его первой и третьей группой. SELECT * FROM users AS A left JOIN groups AS B ON B.group_id IN( A.user_groups) выводит только первое значение.
Подскажите, пожалуйста, правильный запрос

Ответы

▲ 1

А почему нельзя было создать таблицу с полями

user_id | group_id

Было бы тогда только

user_id | user_name
group_id | group_name

А первая таблица указывала бы на принадлежность пользователя к группе, и не пришлось бы строить сложных запросов. Если оставить текущую структуру, то вам придется извлекать из одного поля сразу несколько значений. Попробуйте использовать оператор LIKE или, возможно, регулярные выражения.