-本题解析
本题考查解读问题的思维逻辑和对同一张表查询的结果进行删除产生的问题解决能力

  • 参考答案
DELETE FROM titles_test WHERE id NOT IN(
    SELECT * FROM(
    SELECT MIN(id) FROM titles_test GROUP BY emp_no) a);
  • 答案解析
    1.查找最小id
    SELECT MIN(id) FROM titles_test GROUP BY emp_no
    查询titles_test表中,按照emp_no分组后最小的id,没有重复的id,那么最小或者最大的id就是本身
    2.删除不在最小id集合中的数据
    DELETE FROM titles_test WHERE id NOT IN()
    3.为了解决对同一张表一边查询一边删除所产生的问题,那么再套一层查询,变成表a就变成两张表了,问题就迎刃而解
    SELECT * FROM() a