2014-02-21 2 views
-1

테이블은 다음과 같습니다.우선 순위에 따라 특정 값을 얻는 방법

표 값

ID  Values 
---- ------ 
A1 ---- 3 
A2 ---- 3 
A3 ---- 3 
A4 ---- 3 
A5 ---- 5 
A6 ---- 6 
A7 ---- 6 

표 우선

ID ------ Priority 
A3 ----- 1 
A2 ----- 2 
A1 ----- 3 
A5 ----- 4 
A6 ----- 5 
A4 ----- 6 
A7 ----- 7 

I 미만 값에 대한 우선 순위에 따라 최소 2 값 ID를 찾을 5. 하나 개 이상의 ID가 동일한 가지고 있다면 값은 우선 순위 테이블에서 우선 순위를 사용하고 그 중에서 상위 2 개의 값을 가져옵니다. 위의 경우 A1, A2, A3 및 A4는 동일한 값을 가지며 5보다 작습니다. 우선 순위 테이블에 주어진 우선 순위를 따라야하며 상위 2 개 레코드를 가져옵니다. 위의 경우를 들어이

ID ---- Values 
A3 ---- 3 
A2 ---- 3 

답변

0
SELECT TOP 2 tv.ID, tv.Values 
FROM table_values tv 
INNER JOIN table_priorities tp 
ON tv.Id = ip.ID 
WHERE tv.values < 5 
ORDER BY tv.values, tp.priority 
0

당신은 value에 기준에 대한 첫 번째 테이블을 필터링, 함께 테이블을 조인하여이 작업을 수행 할 수 있습니다 보여 주어야한다. 그런 다음 결과를 주문하고 처음 두를 선택

select v.* 
from values v join 
    priority p 
    on v.id = p.id 
where v.value < 5 
order by priority 
limit 2; 

다른 데이터베이스 엔진이 2로 결과를 제한하는 여러 가지 방법이있다. 따라서 limit 절은 데이터베이스에 따라 select top 2과 같은 다른 것일 수 있습니다.

관련 문제