房间 SQLITE 使用 JOINS 从多个表中删除查询

And*_*123 2 android android-sqlite android-room

嘿伙计们,我正在将我的表和查询从 mysql 移动到一个 andorid 应用程序内的内部 SQLITE 数据库。

当我将删除查询复制到我的 DAO 中时,它抛出了一个错误:

DELETE moodBeforeTable, moodAfterTable
FROM moodBeforeTable
JOIN moodAfterTable
ON  moodAfterTable.cbtId = moodBeforeTable.cbtId
WHERE moodBeforeTable.cbtId =: cbtId";
Run Code Online (Sandbox Code Playgroud)

第一个词moodBeforeTable 是红色下划线,IDE 声明它期望FROM。它似乎不喜欢 mysql 语法。我不确定如何重写此查询。我还从另一个表中进行了第二次删除。是否可以通过一个方法调用执行所有这些删除?

基本上,当用户单击删除按钮时,它需要一键从三个单独的表中删除记录。我们可以在 DAO 内部联合查询吗?如果可以的话,请给我一个简单的例子来说明如何编写这个,因为语法与我习惯的不同

And*_*123 7

通过进一步研究,我得出结论,sqlite 不允许同时从多个表中删除查询。

为了解决这个问题,我简单地设置了三个单独的删除查询来定位我想要从中删除数据的每个表。当用户单击删除按钮时,DAO 中的所有 3 个删除查询都在 AsyncTask 中执行。我对此进行了彻底的测试,并且效果很好。

我希望这个答案将来会对其他人有所帮助。