2013-06-12 3 views
4

메신저를 사용하고 있습니다. 테이블의 각 행과 모든 행을 비교하는 방법은 무엇입니까?

이 테이블의 모든 남아 행으로 각 행을 비교 호 (마지막 행부터) -15 < 제목 사이이다 < +10 (마지막 행)에서 < +15 -10 < 소인을 ID와 타임 스탬프를 선택한다.

myTable 
id 
heading (In degrees) 
timestamp (in seconds) 

예. 첫 번째 테이블 행의 :

1 - 50 - 133324565 
2 - 12 - 133324565 
3 - 10 - 133324565 
5 - 220 - 133324565 
6 - 35 - 133324565 
10 - 10 - 133324565 
11 - 15 - 133324565 
12 - 22 - 133324565 
16 - 168 - 133324565 

본인의 것처럼 ID는 순차적이지 않으므로 올바르게 처리 할 수 ​​없습니까?

SELECT T1.id,T1.heading,T2.id,T2.heading 
FROM mytable as T1, mytable as T2 
WHERE T1.id > T2.id -1 
AND (T1.timestamp > T2.timestamp -10 OR T1.timestamp < T2.timestamp +10) 
AND (T1.heading > T2.heading -15 OR T1.heading < T2.heading +15) 

답변

1
SELECT T1.id,T1.heading,T2.id,T2.heading 
FROM mytable as T1, mytable as T2 
WHERE T1.id > T2.id AND NOT EXISTS (SELECT T3.id FROM mytable as T3 WHERE T3.id<T1.id AND T3.id>T2.id) 
AND (T1.timestamp > T2.timestamp -10 OR T1.timestamp < T2.timestamp +10) 
AND (T1.heading > T2.heading -15 OR T1.heading < T2.heading +15) 
관련 문제