原sql
与inner join组合使用会造成,数据不一致
改造写法,改造为子查询GROUP_CONCAT
SELECT `bhu`.`strUserGuid` AS `strGuid`, `bhu`.`strArea` AS `strArea` FROM ( `household_user` `hu` JOIN ( SELECT ( SELECT GROUP_CONCAT(DISTINCT keypropCode SEPARATOR ',' ) FROM household_user_key WHERE strUserGuid = k.strUserGuid AND isDelete=0 AND isEnable=0 ) kcode, ( SELECT GROUP_CONCAT( DISTINCT keypropName SEPARATOR ',' ) FROM household_user_key WHERE strUserGuid = k.strUserGuid AND isDelete=0 AND isEnable=0 ) kname, ( SELECT GROUP_CONCAT( DISTINCT keypropValue SEPARATOR ',' ) FROM household_user_key WHERE strUserGuid = k.strUserGuid AND isDelete=0 AND isEnable=0 ) kvalue, bhu.* FROM `household_user_key` k LEFT JOIN building_household_user AS bhu ON bhu.strUserGuid = k.strUserGuid GROUP BY k.strUserGuid ) bhu ) WHERE ( ( `hu`.`strGuid` = `bhu`.`strUserGuid` ) <if test="strArea!=null and strArea !=''"> AND `bhu`.`strArea` = #{strArea} </if> AND (`bhu`.`isDeleted` = 0) AND (`hu`.`isDeleted` = 0) ) ) p