2016-11-02 18 views
-1

2つのテーブルがあります。 SHEAD & SLINE最初に出現する行レコードのみを含むヘッドレコードの選択

SHEAD

id - title - origin - Status - datetime 

SLINE

id - sid - datetime - body 

私は= 4起源は私もSLINEからのみ最初の記録の行をしたいSHEADからすべてのレコードを選択します。

したがって、SHeadにorigin = 4という行が1つあり、SLineに2つの関連する行がある場合は、1行しか返す必要がありません。これは可能ですか?ここ

+0

を用いて一つの方法でありますか –

+0

はサンプルデータと期待される出力を示します。また、何を試してみるか教えてください。 [** How-to-Ask **](http://stackoverflow.com/help/how-to-ask) \t \t [** START **](http ://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/)質問品質を向上させ、より良い回答を得る方法を学ぼう。 –

答えて

1

は、一般的な方法である:ここ

select h.*, l.* 
from shead h join 
    sline l 
    on l.sid = h.id 
where s.original = 4 and 
     l.datetime = (select min(l2.datetime) from sline l2 where l2.sid = l.sid); 
+0

完璧、ありがとう! – user3572565

0

まず、最も低いIDを意味イマイチINNER JOIN

SELECT sh.*, 
     s1.* 
FROM SLine s1 
     JOIN (SELECT Min(datetime) min_dt, 
        sid 
      FROM SLine 
      GROUP BY sid) s2 
     ON s2.min_dt = s1.datetime 
      AND s2.sid = s1.sid 
     JOIN SHead sh 
     ON sh.id = s1.sid 
関連する問題