所以我有这个疑问完美的作品:MySQL JOIN/GROUP_CONCAT第二个表?
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;
说我有保存的电话号码,在“用户”,用户可以有任意数量的另一个电话号码表...我将如何去围绕我正在做的完全相同的事情来分类?换句话说,我希望在“phones”表中找到具有相同“user_id”的所有phone_number,并将它们连接在一起(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;
没有运气...或至少查询执行,但它做了一些奇怪的重复的事情......任何帮助将是可怕的!
谢谢!
好吧,这个按预期工作......只是想说明,在GROUP_CONCATS中有必要使用DISTINCT – mike 2010-03-01 19:20:24