2014-01-06 165 views
0

我有两个表MySQL查询的逗号分隔符

table 1: users 
| id | username | 
| 1 | john | 
| 2 | marry | 
| 3 | deep | 
| 4 | query | 
| 5 | value| 

table 2:users_2 
| table_2_id | user_id | 
|  1  | 2,4 | 

我需要所需的是这样的

| table_2_id | username | 
|  1  | marry,query | 

任何人都可以帮我这个输出在MySQL

+1

规范你的数据摆脱jaywalker。 –

+0

是的,我们可以帮助你,但为此,你需要发布你的尝试查询和努力迄今为止实现这一点。 – Rikesh

回答

1

这是你在找什么?

select 
`users_2`.`table_2_id` , GROUP_CONCAT(`users`.`username`) as `usernames` 
from `users_2` 
inner join `users` on FIND_IN_SET(`users`.`id`,`users_2`.`user_id`) 

入住这里输出所有的

http://sqlfiddle.com/#!2/c498bc/3

+0

感谢它的工作我需要的是 – user3073464

+0

是的,为什么要用SQL呢? – Strawberry

0
select a.table_2_id,b.username 
from users b,users_2 a 
where a.table_2_id=b.id 
and b.id in(a.user_id) 
group by a.table_2_id 
0

首先,你应该不是一个多值在一个字段存储。对于表users_2,数据应该是:

table_2_id user_id 
1   2 
1   4 

你归你的表后,您可以使用MySQL GROUP_CONCAT()来获得结果的格式,你提到

SELECT 
    users_2.table_2_id, 
    GROUP_CONCAT(users.username) AS username 
FROM 
    users_2 
JOIN 
    users ON users.id = users_2.user_id 
GROUP BY 
    users_2.table_2_id 
;