2012-09-12 5 views
1

나는 내 SQL 기술에있어서 평균적이며 Google에 대한 확실한 답을 찾는 데 어려움을 겪고 있습니다.SQL 하위 선택/for 루프 SQLite

여러 소스의 로그 데이터가있는 SQLite 데이터베이스가 있습니다. View1은 모든 쿼리를 표시하며 View2는 해당 레코드의 하위 집합입니다. 때로는 한 소스에서 레코드를 볼 때 몇 초 내에 다른 소스에 레코드가 표시됩니다. 그래서 내가 무엇을 얻으려고 모든 뷰 2의 기록과 같은 것을 보이는 뷰 1의 레코드입니다 : 나는이 내 펄 스크립트에서 수행하지만, 얻을 수 알고

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%' 

는 SQL의 방법이된다 더 낫겠 니?

답변

1

사용 (INNER) JOIN :

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%'