【问题标题】:nested query on the same table同一张表的嵌套查询
【发布时间】:2013-07-13 23:12:07
【问题描述】:

您认为这样的查询会在执行我的软件时产生问题吗? 我需要删除所有表,除了最后2组条目,按插入的同一时间分组。

delete from tableA WHERE time not in
                (
                  SELECT time FROM
                  (select distinct time from tableA order by time desc limit 2 
                  ) AS tmptable
                );

你有更好的解决方案吗?我正在使用 mysql 5.5

【问题讨论】:

    标签: mysql nested-query


    【解决方案1】:

    我没有发现您的查询有任何问题,但我更喜欢使用 OUTER JOIN/NULL 检查(另外它减少了对嵌套子查询之一的需求):

    delete a
    from tableA a 
      left join 
      (
          select distinct time 
          from tableA 
          order by time desc 
          limit 2 
      ) b on a.time = b.time
    where b.time is null
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-25
      • 2017-06-11
      • 1970-01-01
      • 1970-01-01
      • 2022-12-07
      相关资源
      最近更新 更多