我有两张桌子
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中输出
答案 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`)
检查输出
答案 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
;