2016-09-25 12 views
-1

私は星の測定値を持つテーブルを持っています。各行(つまり測定値)には、スターのIDとその期間が含まれています。MySQLは異なる行に基づく条件でクエリを実行します

には、例えば、言うことができます:2つのピリオド星P1-P2を満たす:

Star_ID Period 
1  3.6 
1  3.9 
2  4.11 
2  4.12 
2  8.5 
3  7.1 
4  1.31 
4  1.32 

は私がStar_IDの「クローズ」の期間で測定を持っている星ののみを返すクエリを書きたいです< x。この例では、x = 0.02のため、{2,4}を返す必要があります。

誰でも私を助けることができますか?

はたくさんありがとうございました:)

+1

クエリを書くことから始めましょう。クエリに助けを求めるようにしてください。**!==無料クエリーコーディング** – RiggsFolly

+1

私は間違っています___SO ===ここでコード化されたフリークエリ__ – RiggsFolly

+0

同じ星同じ期間を2回持つことはできません、正しいですか? –

答えて

1

一つの方法は、自己結合と集計である:

select t.star_id 
from stars t join 
    stars t2 
    on t.star_id = t2.star_id and t.period <> t2.period 
group by t.star_id 
having min(abs(t.period - t2.period)) < 0.02; 

注:これは、二つの重複行(0の差)を無視します。

関連する問題