【发布时间】:2013-01-23 14:56:51
【问题描述】:
所以我有这个完美的查询:
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_numbers 并将它们连接在一起(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;
没有运气......或者至少查询执行了,但它做了一些奇怪的重复事情......任何帮助都会很棒!
谢谢!
【问题讨论】: