2011-12-03 2 views
14

두 테이블이있는 SQLITE 데이터베이스가 있습니다. 표 A에는 정수 시간 소인과 두 개의 시간 소인이있는 표 B의 행을 참조하는 행 ID를 포함하는 다른 정수 C 럼이 있습니다.SQLite - 내부 조인이있는 행을 삭제 하시겠습니까?

내가이 타임 스탬프는 테이블 B의 두 타임 스탬프 사이에 거짓말을하지 않습니다의 테이블 A의 모든 행을 삭제하려면, 그리고 ROWID는 X.

여기

동일한 것은 내가 지금 가지고 있지만 내가 무엇을 구문 오류가 발생했습니다.

DELETE FROM network 
WHERE ROWID in (
    SELECT ROWID 
    FROM track 
    INNER JOIN network ON (track.ROWID = network.trackId) 
    WHERE network.timestamp > track.stopTime OR network.timestamp < track.startTime 
     AND network.trackId = X 

답변

16

하위 선택의 닫는 괄호가 없습니다. 시도해보십시오.

DELETE FROM network 
WHERE ROWID in (
    SELECT ROWID 
    FROM track 
    INNER JOIN network ON (track.ROWID = network.trackId) 
    WHERE network.timestamp > track.stopTime OR network.timestamp < track.startTime 
     AND network.trackId = X 
) 

그래도 작동하지 않으면 실제 구문 오류를 게시 해보세요.

+0

안녕하세요, 게시 해 주셔서 감사합니다. 당신 말이 맞았습니다. 그것은 첫 번째 구문 오류를 분류했습니다. 또한 ROWID가 WHERE trackId 였고 SELECT ROWID가 SELECT track.ROWID 여야합니다. 스크립트가 작동하는 것 같습니다. 당신의 도움을 주셔서 감사합니다! :) –

+0

카테고리 ID (SELECT 카테고리 ID 에 tblSubCategories FROM INNER가 ON tblRecipe 가입 WHERE tblRecipe 에서 삭제 (= tblSubCategories.categoryID tblRecipe.categoryID) WHERE tblRecipe.categoryID = 9; – Raju

+0

오류 ::: :(근처 ";" : 구문 오류) – Raju

관련 문제