场景
一个起租单可能对应多条附件,通过起租单id关联
Select 起租单id,附件id from 起租单表 left join 附件表 on 起租单id = 附件id
原以为left join出现1对多时,左表只会select出一条数据,但是现实是会造成左表重复数据的产生。
修正方法:不要求查询右表所有数据时,用distinct、group by 对右表进行处理再关联;
需要展示时,先对右表进行处理,将字段合并
修改前
1 | $ LEFT JOIN dat_attachment da ON tr.rentinformation_id = da.business_id AND da.business_type = "dat_mobileRent" |
修改后
1 | $ LEFT JOIN (SELECT distinct business_id FROM dat_attachment WHERE business_type = "dat_mobileRent") da |