同事今天早上发现了bug,这段sql在navicat中正常运行,但是项目跑起来就会报错
SELECTs.security_id AS securityId,s.security_name AS securityName,s.ding_talk_id AS userId,rs.year_num AS yearNum,rs.shift_month_day AS shiftMonthDay,sh.id AS shiftId,sh.shift_name AS shiftName
FROMssmpx_hr.tbl_security_staff sLEFT JOIN tbl_security_refer_shift rs ON rs.security_id = s.security_id AND rs.del_flag = 0LEFT JOIN tbl_attendance_shift sh ON sh.id = rs.shift_id AND sh.del_flag = 0
WHEREs.del_flag = 0 AND s.ding_talk_id IS NOT NULL AND s.ding_talk_activate_status = 1 AND rs.year_num = 2025 AND rs.shift_month_day IN ('01/01')
具体报错如下截图
找到具体位置位于,userId后面会多出一个逗号
网上查找原因找了一个类似问题,
用了注解确实可以,所以猜测是租户问题,但是应该没问题,所以就换成select s.,然后报错就换了一个,加上rs.报错又变回来了
后面同事想到改名,把rs改成ars,居然就正常了
后面单个表查询加上别名rs,就会报错,所以觉得就是这个命名为rs的缘故