2011-12-03 12 views
14

Tengo una base de datos SQLITE con dos tablas. La Tabla A tiene una marca de tiempo entera y otra columna entera que contiene una identificación de fila que hace referencia a una fila en la tabla B que tiene dos marcas de tiempo.SQLITE - eliminar filas con unión interna?

quiero borrar todas las filas de la tabla A donde es marca de tiempo no se encuentra entre las dos marcas de tiempo en la tabla B, y el ROWID es igual a X.

Aquí es lo que tengo en este momento, pero estoy conseguir un error de sintaxis:

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 

Respuesta

16

no tiene un paréntesis de cierre para su subselección. Pruebe esto:

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 
) 

Si eso no funciona, intente publicar su error de sintaxis real.

+0

Hola, gracias por la publicación. Tenías razón, eso clasificó el primer error de sintaxis. También WHERE ROWID debería haber sido WHERE trackID y SELECCIONAR ROWID debería haber sido SELECT track.ROWID. La secuencia de comandos ahora parece estar funcionando. ¡Gracias por tu ayuda! :) –

+0

DELETE FROM tblRecipe DONDE categoryID en ( SELECT categoryID DE tblSubCategories INNER JOIN tblRecipe ON (tblSubCategories.categoryID = tblRecipe.categoryID) DONDE tblRecipe.categoryID = 9; – Raju

+0

error ::: :(cerca ";" : error de sintaxis) – Raju

Cuestiones relacionadas