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/

相关文章:

mysql - 选择未报名参加面试的用户

java - UI不会自动更新,只有刷新后才会改变

php - MySQL 一次更新两个不同的表(CRUD)

android - Gradle connectedAndroidTest 失败并显示 "No tests found."但输出测试结果

ios - 使用 CoreData 从 SQLite View 中获取数据

sqlite - 从sqlite3数据库和模型struct标记读取表时出现问题

sql - 检测行是否被INSERT或REPLACE修改?

mysql - SQL:选择其他表中不存在的位置

android - 使用 MVVM android 进行导航

java - 全世界的新闻api for android