我确实有一张表,其中始终插入更改。为此,每次插入都会增加一个版本号,但总是手动将一个版本设置为事件版本。我现在想检索所有行,其中最高版本的行没有“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,因为最大版本 3 未激活。
我假设我需要某种自连接?
感谢您对此的任何帮助!
最佳答案
你可以使用子查询和内连接
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 ='-'
关于mysql - 获取具有最大版本值但不活动的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54045441/