User
uid name
Roles
uid role_id
Subscriptions
uid subscriptions_id
Хорошо, это может показаться слишком простым, но мы все не смогли получить желаемый результат, который должен выглядеть следующим образом:
user roles subscriptions
1 2,3 1,4,5
2 2,4 4,5,6
....
Вместо этого результат выглядит так:
user roles subscriptions
1 2,3 5
2 2,4 6
....
Команда выбора выглядит следующим образом:
SELECT User.name,
GROUP_CONCAT(Roles.role_id),
GROUP_CONCAT(Subscriptions.subscriptions_id)
FROM User
LEFT JOIN Roles ON User.uid = Roles.uid
LEFT JOIN Subscriptions ON Users.uid = Subscriptions.uid
кстати - GROUP_CONCAT не проблема. Если я пропущу это, я все равно получу что-то вроде этого:
user roles subscriptions
1 2 5
1 3 5
2 2 6
вместо
user roles subscriptions
1 2 1
1 3 4
1 - 5