Я пытаюсь соединить 4 таблицы:MySQL присоединение 4 таблицы
Мои столы являются:
- пользователей (данные пользователя),
- группы (информационные группы),
- users_groups (информация о группах пользователей: от многих до многих. Пользователь может быть членом многих групп, группа может иметь много членов),
- user_favorite_group (любимая группа пользователей).
Подробная информация таблица:
например 1, chatu rohra, [email protected], несколько других информационных полей
например. 1, SOME_GROUP_NAME [email protected], несколько других информационных полей
, например. 1, 1, 1
, например. 1, 1, 1
Я могу присоединиться первые три таблицы (пользователи, группы, users_groups), но не user_favorite_group. Мой запрос:
SELECT
users.*,
GROUP_CONCAT(DISTINCT groups.name ORDER BY groups.name ASC SEPARATOR ', ') as groups
FROM users_groups
INNER JOIN users ON users.id = users_groups.user_id
INNER JOIN groups ON groups.id = users_organizations.organization_id
WHERE users.id = 1;
Это дает мне:
users.id, users.name, users.email, группы 1, chatu rohra, [email protected], SOME_GROUP_NAME
Что бы хотел бы видеть это .. предполагая там больше групп в группах таблице:
1, chatu rohra, [email protected], "AND_ANOTHER, SOME_GROUP_NAME, SOME_OTHER_GROUP", "SOME_OTHER_GROUP"
4-поле является списком групп, в которых я являюсь и моя любимая группа, как пятая поле.
Любые предложения для таблиц имен, производительность также будет отличной.
Спасибо.
Вы можете разместить несколько строк данных выборки и ожидаемые результаты, таким образом кто-то еще может воссоздать проблему? [SQL Fiddle] (http://www.sqlfiddle.com) будет полезен, если вы сможете его создать. – AdamMc331
"user_favorite_group: id, user_group_id'": имеет ли 'user_favorite_group' столбец' user_id'? Я вижу только «id». –
@MichaelBerkowski Вы правы. user_id добавляется в user_favorite_group. Благодарю. – chatu