Итак, у меня есть этот запрос, который отлично работает:
SELECT users.*,
GROUP_CONCAT(categories.category_name) AS categories
FROM users
LEFT OUTER JOIN user_categories ON users.user_id = user_categories.user_id
LEFT OUTER JOIN categories ON user_categories.category_id = categories.category_id
WHERE users.user_city = 'brooklyn'
GROUP BY users.user_id
LIMIT 10;
Скажем, у меня есть другая таблица, в которой хранятся телефонные номера, для "пользователей" у пользователя может быть любое количество телефонных номеров ... Как бы я поступил так же, как и с категориями? Другими словами, я хотел бы получить другой столбец со ВСЕМИ номерами phone_numbers, найденными в таблице «phones », которые имеют одинаковый« user_id », и объединить их вместе (phone1, phone2, phone3)? Я пробовал:
SELECT users.*,
GROUP_CONCAT(phones.phone_number) AS phone_numbers,
GROUP_CONCAT(categories.category_name) AS categories
FROM users
LEFT OUTER JOIN phones ON users.user_id = phones.user_id
LEFT OUTER JOIN user_categories ON users.user_id = user_categories.user_id
LEFT OUTER JOIN categories ON user_categories.category_id = categories.category_id
WHERE users.user_city = 'brooklyn'
GROUP BY users.user_id
LIMIT 10;
Без везения ... или, по крайней мере, запрос выполняется, но он делает некоторые странные вещи дублирования ... любая помощь будет потрясающей!
Спасибо!