select
f.fld_guid as fldGuid,
o.fld_name as ownerName,
convert(f.fld_amount, decimal(18,2)) as amount,
GROUP_CONCAT(d.fld_bill_no2) as billNo2
from es_charge_incoming_fee f
left join es_charge_incoming_data d on f.fld_guid = d.fld_incoming_fee_guid and d.fld_area_guid = '5E318C26-1B36-429B-805F-76C6AE6F48EF'
join es_info_owner o on f.fld_owner_guid = o.fld_guid and o.fld_area_guid = '5E318C26-1B36-429B-805F-76C6AE6F48EF'
left join es_charge_pay_mode pm on d.fld_pay_mode_guid = pm.fld_guid
where f.fld_area_guid = '5E318C26-1B36-429B-805F-76C6AE6F48EF'
and d.fld_object_guid in('CC03521F-2717-42EB-B4DF-13755A3BBE61')
GROUP BY f.fld_guid
ORDER BY f.fld_guid
解决方案,优化GROUP_CONCAT方法
select
f.fld_guid as fldGuid,
o.fld_name as ownerName,
convert(f.fld_amount, decimal(18,2)) as amount,
ifnull(GROUP_CONCAT(distinct if(d.fld_bill_no2='',null,d.fld_bill_no2)),'') as billNo,
GROUP_CONCAT(d.fld_bill_no2) as billNo2
from es_charge_incoming_fee f
left join es_charge_incoming_data d on f.fld_guid = d.fld_incoming_fee_guid and d.fld_area_guid = '5E318C26-1B36-429B-805F-76C6AE6F48EF'
join es_info_owner o on f.fld_owner_guid = o.fld_guid and o.fld_area_guid = '5E318C26-1B36-429B-805F-76C6AE6F48EF'
left join es_charge_pay_mode pm on d.fld_pay_mode_guid = pm.fld_guid
where f.fld_area_guid = '5E318C26-1B36-429B-805F-76C6AE6F48EF'
and d.fld_object_guid in('CC03521F-2717-42EB-B4DF-13755A3BBE61')
GROUP BY f.fld_guid
ORDER BY f.fld_guid
解决MySQL中 GROUP_CONCAT方法拼接字符传,第一位或最后一位会有逗号问题例select f.fld_guid as fldGuid,o.fld_name as ownerName,convert(f.fld_amount, decimal(18,2)) as amount,GROUP_CONCAT(d.fld_bill_no2) as billNo2from es_charge_incoming_fee fleft join es_charge_incoming_data