MySQL查询数据主表数据不变,外表中【符合条件】数据变为一个个数组的形式展示出来
主表: user
id name age
1 张三 12
2 李斯 10
外表:user_img
id img user_id
1 http://123.jpg 1
2 http://456.jpg 2
3 http://789.jpg 1
得到结果:
id name age imgs
1 张三 12 http://123.jpg,http://789.jpg
2 李斯 10 http://456.jpg
SQL
SELECT u.* ,GROUP_CONCAT(ui.img order by ui.id asc) from user u left JOIN user_img ui on ui.user_id=u.id GROUP BY u.id
注:
将符合ui.user_id=u.id的user_img表里面的img通过GROUP_CONCAT合并在一块了,合并时按照user_img里面的id进行排序 ,最后根据user 里面的id进行分组
group_concat()
功能:将group by产生的同一个分组中的值连接起来,返回一个字符串结果。
语法:group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator '分隔符'] )
说明:通过使用distinct可以排除重复值;如果希望对结果中的值进行排序,可以使用order by子句;separator是一个字符串值,缺省为一个逗号。

浙公网安备 33010602011771号