您的位置:首页技术文章
文章详情页

关于mysql联合查询一对多的显示结果问题

浏览:40日期:2022-06-18 11:02:46

问题描述

有两张表,一张是user表,一张是user_tag表

user:结构内容如下:id name age1 有马公生 182 宫园薰 16user_tag:结构内容如下:userid tagid remake1 10 10.21 20 10.31 30 10.42 20 10.3

需要在显示user列表时把tagid也要查出来

联合查询:

SELECT `user`.`id`, `user`.`name`, `user`.`age`, `user_tag`.`tagid`FROM `user`LEFT JOIN `user_tag` ON `user`.id = `user_tag`.`userid`

得到的结果是:

id name age tagid1 有马公生 18 101 有马公生 18 201 有马公生 18 302 宫园薰 16 20

这样看起来结果是重复了,如我需要显示userid=1 的结果是

1 有马公生 18 10,20,30

这种或类似的格式,sql语句该怎么写呢?实在不行只能是在程序上实现了!

问题解答

回答1:

SELECT `user`.`id`, `user`.`name`, `user`.`age`, GROUP_CONCAT(`user_tag`.`tagid`)FROM `user`LEFT JOIN `user_tag` ON `user`.id = `user_tag`.`userid`GROUP BY `user`.`name`

相关文章: