android - 使用内部连接删除行?

标签 android sqlite join

我有一个包含两个表的 SQLITE 数据库。表 A 有一个整数时间戳和另一个整数列,其中包含引用表 B 中具有两个时间戳的行的行 ID。

我想删除表 A 中时间戳不在表 B 中两个时间戳之间且 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

最佳答案

您的子选择没有右括号。试试这个:

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
)

如果这不起作用,请尝试发布您的实际语法错误。

关于android - 使用内部连接删除行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8364329/

相关文章:

php - 如何防止 SQLITE SQLSTATE[HY000] [14]?

mysql - 在mysql中填充/加入多对多关系表的多个表

mysql - 为什么 LEFT OUTER JOIN 无法工作?

java - 如何让 Android TableLayout 填满屏幕?

android - 媒体播放器 : Couldn't open file on client side; Error(-38, 0) 等等

android - 使用 SimpleDateFormat 转换 Sqlite 列日期格式

sqlite - Full Outer Join in sqlite on 4 tables

java - onSaveInstanceState 和 onRestoreInstanceState 似乎不起作用

android - 无法更改 edittext 提示颜色

MySQL 插入和连接