2013-06-12 38 views
4

我正在使用mysql。如何比較表中的每行與所有行?

比較每一行與從該表中的所有行向左和選擇ID和時間戳,其中標題爲(從最後一行)-15 <標題之間(從最後一行) 15和-10 <時間戳。

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) 
相關問題