mysql查询结果多列拼接查询

mysql查询结果多列拼接查询,主要场景是,列表中其中一列涉及另外一张表的多条数据,但是我只需要多条数据中的其中某一列(主子表场景)

关键字:GROUP_CONCAT

sql语句如下:

1
2
3
4
5
6
7
SELECT
r.id,b.NAME AS group_name,GROUP_CONCAT( a.`name` ) province_name
FROM config_rule AS r
LEFT JOIN group AS g ON ( r.svg_id = g.id )
LEFT JOIN config_rule_detail AS rd ON ( r.id = rd.chat_config_rule_id )
LEFT JOIN area AS a ON ( rd.province_id = a.id )
WHERE r.company_id = 1 AND r.delete_flag = 'N' AND rd.delete_flag = 'N' and r.chat_mongo_id = '123456'

参考地址:https://blog.csdn.net/qq_35548288/article/details/81771978

《高性能MySQL》之MySQL查询性能优化

为什么查询会慢?

响应时间过长。如果把查询看做是一个任务,那么它由一系列子任务组成,每个子任务都会消耗一定的时间。如果要优化查询,实际上优化其子任务,要么消除其中一些子任务,要么减少子任务的执行次数,要么让子任务运行得更快。