2012-05-17 32 views
1

可能是你能帮助我:MYSQL要求

我有一个表:

1: Users 
id username email 
1 myname  [email protected] 
2 myname2 [email protected] 

2: Accounts 
user_id account 
1   37992054 
2   3804933 
1   23286966 

我需要做的请求,并得到这样的数据:

id username email    account 
1 myname  [email protected] 37992054, 23286966 
2 myname2 [email protected] 3804933 
+1

了解[SQL连接(http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins的.html)。您需要使用带有“GROUP BY”子句的['GROUP_CONCAT()'](http://dev.mysql.com/doc/en/group-by-functions.html#function_group-concat)。 – eggyal

回答

4

你需要加入你的两个表并使用分组构造来折叠具有相同用户ID的记录:

Select u.id, u.username, u.email, group_concat(a.account) 
from users as u join accounts as a 
    on a.user_id = u.id 
group by u.id; 
+0

伟大的解决方案D Mac。大拇指!你知道如何去相反吗?假设我们将结果插入到一个新表中。我们怎样才能使用这些逗号分隔列来得到结果作为账户表? –

+0

太棒了!感谢它的工作。 – user889349

0

你需要一个标准的连接查询:

select u.id,u.username,u.email,a.account from Users as u, Accounts as a where u.id=a.id;