我的软件在几个数据库上运行,所以我需要通用(值得注意的是,我认为“distinct on”解决方案可能有效,但这不是标准的)。
假设我有两个表定义为:
Table A: id, time (pk: id)
Table B: id(fk), key, value (pk: id, key)
其中表 B 的 id 是表 A 的外键,主键是指定的。
我需要所请求密钥的最新(及时)值。所以,假设我有如下数据:
id | key | value
1 | A | v1
1 | B | v2
1 | C | v3
2 | A | v4
2 | C | v5
3 | B | v6
3 | D | v7
如果 id 的时间在增加,并且我想要键 A 和 C 的值,我希望得到如下结果:
key | value
A | v4
C | v5
或者对于键 D 和 A:
key | value
D | v7
A | v4
理想情况下,对于 n 个关键请求,我只会返回 n 行。单个查询可以实现这样的事情吗?