Mysql查询逗号分隔符

时间:2014-01-06 09:35:33

标签: php 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中输出

3 个答案:

答案 0 :(得分: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

答案 1 :(得分: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

答案 2 :(得分: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
;