通过以下操作可以查询出差集。。。but 还没拿到重复数据的最近一条记录
SELECT * FROM A LEFT JOIN B ON A.code = B.code WHERE B.id IS NULL
于是想到了最常用的,ORDER BY 通过排序可以利用 创建时间字段来排序+LIMIT 这样就可以获取到最近一条 (但是这个只是适用于查询一个code数据的操作)
SELECT * FROM A LEFT JOIN B ON A.code = B.code WHERE B.id IS NULL ORDER BY A.create_time LIMIT 1
最后想到了ORDER BY + GROUP BY (ORDER BY 排序可以让时间倒序,GROUP BY 可以分组让我们根据code分组获取他们最近一条数据)
SELECT * FROM (SELECT * FROM (SELECT * FROM A LEFT JOIN B ON A.code = B.code WHERE B.id IS NULL ORDER BY A.create_time) test) AB WHERE AB.Status = '正常'
((查询出差集,ORDER BY 让创建时间倒序)把这个结果当作一个结果集 test)利用结果集进行对重复数据去重GROUP BY分组之后再当做结果集 AB) 因为还有一个状态需要判断 AB = '正常'