同一张表的嵌套查询
Posted
技术标签:
【中文标题】同一张表的嵌套查询【英文标题】: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
【问题讨论】:
【参考方案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
SQL Fiddle Demo
【讨论】:
以上是关于同一张表的嵌套查询的主要内容,如果未能解决你的问题,请参考以下文章