我必须做一个复杂的删除语句,看起来像这样:
DELETE FROM
(Select t1._id, t1.subject, t1.predicate, t1.object from t1
INNER JOIN t1 AS t2 ON t1.subject=t2.subject
WHERE t2.object='ID20447_325762212'
UNION
Select t1._id, t11.subject, t1.predicate, t1.object from t1
INNER JOIN t1 AS t2 ON t1.object=t2.subject
WHERE t2.object='ID20447_325762212')
我认为 SQLitedabatase#delete(Table, selection, selectionArgs) 不可用。没有办法有联接和联合。SQLiteQueryBuilder 具有与 setTables(joinString) 的 JOIN 和具有 subQuery() 和 Unionquery 的 UNION,但仅适用于不删除的选择查询。
它是如何工作的?
[更新] 我可以通过将两个子查询分隔在两个删除语句中来降低复杂性,但是每个人都有一个连接,所以这不是一个解决方案。这也行不通。
[update2] 这是我要删除的表格行的屏幕截图。
在我的应用程序中,我有一个 ID...2328(第 2 行)的对象和一个由该屏幕截图中的行表示的属性(关系)。该关系针对具有 id ...212 的对象。我必须删除该对象和所有属性