직장에서 외래 키 당 최대 상태를 자주 찾아야합니다. 대부분의 경우 조인에 대해 상관 관계가있는 하위 쿼리를 사용하여 올바른 레코드를 얻었습니다. 가장 높은 기본 키가 가장 최근의 키라고 가정합니다. 여기에 약간의 데모
외래 키당 테이블의 최대 레코드를 찾는 가장 좋은 방법은 무엇입니까?
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 절을 사용하여 상위 레코드가 없는지 확인했지만 다른 것을 찾을 수 없습니다. 누군가가 더 나은 것을 제안 할 수 있습니까? 그렇다면 그 이유는 무엇입니까? 나는 sandard의 윈도우 기능을 사용하는 것이 좋습니다
을 얻을 무엇이든 얻을 수 있습니다 테이블? –
최근 레코드를 원한다면 날짜 시간 필드를 사용하십시오. 그렇다면 가정을 할 필요가 없습니다. –
정확하게 이해한다면 쿼리가 한 행만 반환한다는 의미입니까? –