SELECT * FROM sys_ingredient igd LEFT JOIN ( SELECT ingredient_id as id, GROUP_CONCAT(name SEPARATOR ',') not_rec FROM( SELECT physical_signs_id as id, ingredient_id FROM sys_ingredient_not_rec ) notRec JOIN sys_physical_signs phy USING(id) GROUP BY id ) notRecT USING(id) LEFT JOIN ( SELECT ingredient_id as id, GROUP_CONCAT(name SEPARATOR ',') rec FROM( SELECT physical_signs_id as id, ingredient_id FROM sys_ingredient_rec ) rec JOIN sys_physical_signs phy USING(id) GROUP BY id ) recT USING(id) SELECT * FROM sys_ingredient igd RIGHT JOIN( SELECT * FROM( SELECT DISTINCT(ingredient_id) as id FROM sys_ingredient_rec physical_signs_id in #{item} ) recId LEFT JOIN ( SELECT ingredient_id as id, GROUP_CONCAT(name SEPARATOR ',') rec FROM( SELECT physical_signs_id as id, ingredient_id FROM sys_ingredient_rec ) rec JOIN sys_physical_signs phy USING(id) GROUP BY id ) recM USING(id) INNER JOIN ( SELECT * FROM( SELECT DISTINCT(ingredient_id) as id FROM sys_ingredient_not_rec physical_signs_id in #{item} ) notRecId LEFT JOIN ( SELECT ingredient_id as id, GROUP_CONCAT(name SEPARATOR ',') not_rec FROM( SELECT physical_signs_id as id, ingredient_id FROM sys_ingredient_not_rec ) notRec JOIN sys_physical_signs phy USING(id) GROUP BY id ) notRecM USING(id) ) notRecT USING(id) ) recT USING(id) insert into sys_ingredient name, type, protein_ratio, fat_ratio, carbon_ratio, area, remark, create_by, create_time, update_by, update_time, review_status, info, #{name}, #{type}, #{proteinRatio}, #{fatRatio}, #{carbonRatio}, #{area}, #{remark}, #{createBy}, #{createTime}, #{updateBy}, #{updateTime}, #{reviewStatus}, #{info}, insert into sys_ingredient_rec(ingredient_id, physical_signs_id) values (#{item.targetId},#{item.physicalSignsId}) insert into sys_ingredient_not_rec(ingredient_id, physical_signs_id) values (#{item.targetId},#{item.physicalSignsId}) delete from sys_ingredient_rec where ingredient_id=#{ingredientId} delete from sys_ingredient_not_rec where ingredient_id=#{ingredientId} update sys_ingredient name = #{name}, type = #{type}, protein_ratio = #{proteinRatio}, fat_ratio = #{fatRatio}, carbon_ratio = #{carbonRatio}, area = #{area}, remark = #{remark}, create_by = #{createBy}, create_time = #{createTime}, update_by = #{updateBy}, update_time = #{updateTime}, review_status = #{reviewStatus}, info = #{info}, where id = #{id} update sys_ingredient set del_flag=1 where id = #{id} insert into sys_ingredient_file(igd_id, url, name, create_by, create_time, update_by, update_time ) values (#{item.igdId},#{item.url},#{item.name},#{item.createBy},#{item.createTime},#{item.updateBy},#{item.updateTime}) delete from sys_ingredient_file where igd_id=#{id}