2009-05-27 4 views
0

인스턴트 메신저, 내가하고 싶은 일은 정말 간단하며 잘못된 솔루션을보고있는 것 같습니다. 단순히 관련 테이블의 날짜 스탬프를 기반으로 정렬 된 테이블을 반환하고 싶습니다.SQL2005 + 내부 조인 테이블의 datetime을 기반으로 고유 한 결과 반환

즉 내 결과가

201 Other Why 
200 MyStuff OK 
202 Flat So 

가입하고 난 내 일을 시도해야한다, 그래서

Table 1: 
200 MyStuff OK 
201 Other  Why 
202 Flat  So 

Table 2: 
1 200 5/12/2009 MyValue1 
2 200 5/11/2009 MyValue2 
3 201 7/10/2009 MyValue3 
4 201 7/08/2009 MyValue4 

가 나는 두 번째 테이블의 날짜를 기준으로 정렬 된 첫 번째 테이블을 반환하려면 ,하지만 내가 뚜렷한 것을 선택하는 것은 필자가 정렬하는 두 번째 테이블의 날짜를 포함해야하므로 반환 테이블에 중복 된 pk로 끝납니다.

여기 신참 실수를 이해하도록 도와주세요.

답변

0

Table1의 모든 행에 대해 Table2에 여러 행을 가질 수 있으므로 정렬까지 날짜를 처리하는 방법을 결정해야합니다.

의 당신은, 당신은 같은 것을 할 거라고 최대 날짜 스탬프에 정렬 할 가정 해 봅시다 : 당신은 분명히 일부 널 (null) 처리 및 이것 저것을 추가해야

select table1.*, t2.max_ds 
from table1 
inner join (select id, max(datestamp) as max_ds from table2 group by id) t2 
on t2.id = table1.id 
order by t2.max_ds 

을,하지만 당신이 시작할 수 있어야합니다.

+0

그게 내가 필요로하는 방향으로 생각해 줬어, 고마워. 실제로 하위 쿼리를 수행하고 그 결과를 정렬했습니다. – schmoopy

관련 문제