获取具有最大版本值但未处于活动状态的行

t9aqgxwy  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(418)

我确实有一张表,总是插入更改。为此,每次插入时都会增加一个版本号,但始终手动将一个版本设置为活动版本。我现在想检索所有行,其中具有最高版本的行没有'active'=true。

| UID | Version | Active | Name  |
----------------------------------
| 001 |       1 | _      | Peter |
| 001 |       2 | X      | Paul  |
| 001 |       3 | _      | Petra |
| 002 |       1 | _      | Walt  |
| 002 |       2 | X      | Jan   |
| 003 |       1 | X      | Brad  |

查询的结果应该只返回uid 001,因为存在不活动的max版本3。
我想我需要某种自我连接?
谢谢你的帮助!

wlsrxk51

wlsrxk511#

可以使用子查询和内部联接

select uid, version
from my_table m
inner join  (
  select  uid, max(version) max_version
  from my_table 
  group by uid
) t ON t.uid = m.uid and t.max_version = m.version 
where active ='-'

相关问题