select id, imei, agri_name, user_id, alarm_status, install_time, location, remark, create_time, create_by, update_time, update_by, is_deleted from sys_agri_info SELECT agri.id, agri.imei, agri.agri_name, agri.alarm_status, agri.install_time, agri.location, agri.remark, agri.create_time, agri.create_by, agri.update_time, agri.update_by, agri.is_deleted, user_agri.user_id FROM sys_agri_info agri LEFT JOIN sys_user_agri user_agri ON user_agri.agri_id = agri.imei SELECT agri.id, agri.imei, agri.agri_name, agri.work_mode, user_agri.user_id, dtu_last.time, dtu_last.ts, dtu_last.temp1, dtu_last.temp2, dtu_last.temp3, dtu_last.temp4 FROM sys_agri_info agri LEFT JOIN sys_user_agri user_agri ON user_agri.agri_id = agri.imei and user_agri.user_id is null LEFT JOIN ( SELECT dtu.imei, dtu.time, dtu.ts, dtu.temp1, dtu.temp2, dtu.temp3, dtu.temp4, ROW_NUMBER() OVER (PARTITION BY dtu.imei ORDER BY dtu.create_time DESC, dtu.id DESC) AS rn FROM sys_dtu_data dtu WHERE dtu.create_time >= DATE_SUB(NOW(), INTERVAL 1 HOUR) ) dtu_last ON dtu_last.imei = agri.imei AND dtu_last.rn = 1 insert into sys_agri_info imei, agri_name, work_mode, user_id, alarm_status, install_time, location, remark, create_time, create_by, update_time, update_by, is_deleted, #{imei}, #{agriName}, #{workMode}, #{userId}, #{alarmStatus}, #{installTime}, #{location}, #{remark}, #{createTime}, #{createBy}, #{updateTime}, #{updateBy}, #{isDeleted}, update sys_agri_info imei = #{imei}, and work_mode = #{workMode} agri_name = #{agriName}, user_id = #{userId}, alarm_status = #{alarmStatus}, install_time = #{installTime}, location = #{location}, remark = #{remark}, create_time = #{createTime}, create_by = #{createBy}, update_time = #{updateTime}, update_by = #{updateBy}, is_deleted = #{isDeleted}, where id = #{id} delete from sys_agri_info where id = #{id} delete from sys_agri_info where id in #{id}