1

我的 sql 技能相当平均,并且无法在谷歌上找到明确的答案,所以就这样吧。

我有一个 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 回答