表如下
ID USER OP
1 A 进入
2 A 退出
3 A 进入
4 B 进入
5 C 进入
6 D 进入
7 C 退出
8 C 进入如果要删除那些进入后退出了的记录,保留那些进入没退出的记录该怎么写SQL语句?
ID USER OP
1 A 进入
2 A 退出
3 A 进入
4 B 进入
5 C 进入
6 D 进入
7 C 退出
8 C 进入如果要删除那些进入后退出了的记录,保留那些进入没退出的记录该怎么写SQL语句?
解决方案 »
- 这样简单的Mysql语句如何写?
- 尽量减少mysql的内存暂用
- mysql Communications link failure-各位大侠帮我看看这是什么问题啊,超级郁闷的
- mysql里面存储过程,在commit或者update的时候,如何处理异常?
- 请问什么是MySQl数据库?
- mysql front version3.1 (build12.1)版本的注册码
- 3.23.53-max-nt 不是最稳定的版本吗?怎么回事呢? 2626.65变成2626.6499了
- 请教mysql_query导致的内存泄漏问题
- Mysql 找不到列的问题
- mysql数据库多表查询优化,求大神指点
- 为什么会加上localhost
- [求解]Postgresql下select語法實現
create table tb(ID int, [USER] varchar(2), OP varchar(10))
go
insert into tb select
1 , 'A', '进入' union all select
2 , 'A', '退出' union all select
3 , 'A', '进入' union all select
4 , 'B', '进入' union all select
5 , 'C', '进入' union all select
6 , 'D', '进入' union all select
7 , 'C', '退出' union all select
8 , 'C', '进入'
delete
from tb
where id not in(select id
from tb
where id in
(select max(id)
from tb
group by [user]) and op ='进入')
from tb b
where id not in (select max(a.id)
from tb a
where a.[user]=b.[user]
and a.op ='进入'
)