在工作中,我经常需要找到每个外键的最大状态。在大多数情况下,我总是在连接上使用相关的子查询来获得正确的记录。这是假设最高的主键是最新的。这是一个小演示
select
c.plate_number, o.name
from
Car c
inner join Owner o
on o.owner_id = (
select max(owner_id)
from Owner
where owner_type = 'PRIMARY'
)
这在我使用的大多数查询中都非常快,更不用说能够在类型列的子查询中放置额外的条件。我尝试使用 NOT EXIST 子句来确保没有更高的记录,但找不到其他任何东西。有人可以提出更好的建议吗?如果可以,为什么?