SELECT uid ,nick_name ,achievement FROM user_info LEFT JOIN ( SELECT uid ,MAX(DATE_FORMAT(submit_time, "%Y%m")) AS date_ex FROM user_info JOIN exam_record USING(uid) GROUP BY uid ) data1 USING(uid) LEFT JOIN ( SELECT uid ,MAX(DATE_FORMAT(submit_time, "%Y%m")) AS date_pr FROM user_info JOIN practice_record USING(uid) GROUP BY uid ) data2 USING(uid) WHERE nick_name LIKE "牛客%号" AND achievement BETWEEN 1200 AND 2500 AND (date_ex = "202109" OR date_pr = "202109" )
- 一定要使用LEFT JOIN,否则会因为两次JOIN连接删除某些用户,违背后期OR的需要,从而导致结果中只使用JOIN会报错