2011-12-03 8 views
14

私は2つのテーブルを持つSQLITEデータベースを持っています。表Aには、整数のタイムスタンプと、2つのタイムスタンプを持つ表Bの行を参照する行IDを含む別の整数列があります。私はそれがタイムスタンプだAがテーブルBに2つのタイムスタンプの間に存在しない、とROWIDはX.ここSQLite - 内部結合の行を削除しますか?

に等しいテーブル内のすべての行を削除したい

は私が現時点で持っているものですが、私は構文エラーが発生しました:

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

こんにちは、ありがとう。あなたが正しいとは、最初の構文エラーをソートしました。また、WHERE ROWIDはWHERE trackIdでなければならず、SELECT ROWIDはSELECT track.ROWIDであったはずです。スクリプトは現在動作しているようです。ご協力いただきありがとうございます! :) –

+0

がtblSubCategories インナーtblRecipe ON(tblSubCategories.categoryID = tblRecipe.categoryID) tblRecipe.categoryID = 9 JOIN FROM( SELECTカテゴリID内のカテゴリID tblRecipe FROM DELETE; – Raju

+0

エラー::: :(近くを ";" : 構文エラー ) – Raju

関連する問題