当数据表中存在一对多的情况,有需求需要合并成一条的时候
场景:一个项目对应的客户,他的联系人可能有多个,需要把数据从多行调整为一行
CUST_ID | CUST_NAME | CUST_ADDR | CONTACT_NAME | CONTACT_PHONE |
---|---|---|---|---|
1008881 | 张三 | 广州 | 李四 | 17855555555 |
1008881 | 张三 | 广州 | 王五 | 17855555556 |
1008881 | 张三 | 广州 | Jack | 17855555557 |
1008881 | 张三 | 广州 | April | 17855555558 |
1008881 | 张三 | 广州 | Lucia | 17855555559 |
处理方法:
select
CUST_ID,
CUST_NAME,
CUST_ADDR,
GROUP_CONCAT(CONTACT_NAME) AS CONTACT_NAME,
GROUP_CONCAT(CONTACT_PHONE) AS CONTACT_PHONE
from customer
GROUP BY CUST_ID,CUST_NAME,CUST_ADDR
输出结果:
CUST_ID | CUST_NAME | CUST_ADDR | CONTACT_NAME | CONTACT_PHONE |
---|---|---|---|---|
1008881 | 张三 | 广州 | 李四,王五,Jack,April,Lucia | 17855555555,17855555556,17855555557,17855555558,17855555559 |