关于mysql联合查询一对多的显示结果问题
问题描述
有两张表,一张是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`
相关文章:
1. css3 - 求css页面解决方案2. Java中main方法里面的参数一定要是String []args吗?3. javascript - webpack构建工具重构代码的流程是怎么样的?4. 如何解决docker宿主机无法访问容器中的服务?5. HTML5表单必填属性设置自定义验证消息?6. mysql 5个left关键 然后再用搜索条件 几千条数据就会卡,如何解决呢7. html5 - 自己的H5页面如何集成支付宝支付8. docker绑定了nginx端口 外部访问不到9. javascript - 想做一个canvas的触摸画板,但屏幕会在画的时候滚来滚去,如何阻止?10. 系统重装后,恢复mysql5.5?

网公网安备