2010-08-16 4 views
1

어디서/무엇을 검색 할 것인지는 잘 모르겠다 - 이전에 물어 본 것이 사소한 일인가?처리되지 않은 행에 대한 sqlite SQL 쿼리

나는 sqlite가 두 테이블이 있습니다

table_A = [id, value1, value2] 
table_A$foo = [id, foo(value1), foo(value2)] 
table_A$bar = [id, bar(value1), bar(value2)] 
foo는()/바() 순간에 지금

여기 정말 관련이없는 임의의 함수이다

, 내가 할 :

select * from table_A 

그리고이 커서를 사용하여 각 파생 테이블의 모든 행을 계산하십시오. 뭔가 잘못되면 (또는 내가 table_A에 새 행을 추가), 난 (열 수있는 방법은 파이썬보다는 SQL 내에서) 어떤 행이 이미 table_A$foo 등등에 존재하므로 그냥 나머지를 선택하고 싶습니다 (AND NOT과 같이) foo()bar()을 계산하려면 ID 열에서이 작업을 수행 할 수 있어야합니다.

sqlite에서이 작업을 수행 할 방법이 있는지 궁금해합니다.이 작업은 Python으로 작업하는 것보다 빠릅니다.

감사합니다. 사용

답변

1

는 값 1의 일치 열 또는 세 컬럼의 조합에 따라 경기를 고려한다면 이해가 안 ...

이미 존재 자들을 찾기 위해 존재합니다

SELECT * 
    FROM TABLE_A a 
WHERE EXISTS(SELECT NULL 
       FROM TABLE_A$foo f 
       WHERE a.id = f.id 
       AND a.value1 = f.value1 
       AND a.value2 = f.value2) 
사용

없는 자들을 찾기 위해 존재합니다

SELECT * 
    FROM TABLE_A a 
WHERE NOT EXISTS(SELECT NULL 
        FROM TABLE_A$foo f 
        WHERE a.id = f.id 
        AND a.value1 = f.value1 
        AND a.value2 = f.value2) 
+0

화려한! 매우 감사합니다! – malangi

관련 문제