1

私はSQLスキルがかなり平均的で、Googleで決定的な答えを見つけるのに苦労しているので、ここに行きます.

複数のソースからのログ データを含む SQLite データベースがあります。View1 はすべてのクエリのビューで、View2 はそれらのレコードのサブセットです。ときどき、あるソースでレコードを確認すると、数秒以内に別のソースでレコードが表示されることがあります。だから私が取得しようとしているのは、View2 のすべてのレコードと、次のような View1 のレコードです。

SELECT * FROM View1 WHERE (View1.ID=View2.ID) OR ((View1.Epoch_Start BETWEEN 
View2.Epoch_Stop AND (View2.Epoch_Stop+5)) AND View1.String LIKE '%string%'

Perlスクリプトでこれを達成できることは知っていますが、より良いSQLメソッドはありますか?

4

1 に答える 1

1

使用(内部) 結合:

SELECT * 
FROM 
    View1 JOIN
    View2 ON
        (View1.ID=View2.ID) 
        OR (View1.Epoch_Start BETWEEN View2.Epoch_Stop AND (View2.Epoch_Stop+5))
WHERE View1.String LIKE '%string%'
于 2012-09-12T21:31:41.670 に答える