【发布时间】:2013-08-14 02:20:11
【问题描述】:
我有下表
我想从两个表中删除与 productId 对应的数据。我研究了 JOIN 不能与 SQLite 中的 DELETE 一起应用,所以我尝试了以下查询
DELETE FROM optionToValues WHERE optionToValues.optionId IN
(SELECT optionToValues.optionId
FROM optionToValues
JOIN productOptions on productOptions.optionId = optionToValues.optionId
WHERE productOptions.product_id = 82)
但是没有执行删除操作。请给我一些建议,我们可以如何实现这一目标。任何帮助表示赞赏。
【问题讨论】:
-
该查询实际上没有意义。您正在一组 optionIds 中寻找 product_id。也许你只想要
DELETE FROM productOptions WHERE product_id = 82?如果没有,您到底想完成什么? -
或者您是否要删除某个产品的所有选项?
-
@323go 我必须删除 productoptions 然后该产品也
-
“从 2 个表中删除数据”不可能使用单个语句。您可以通过外键操作来完成此操作(例如,删除您将获得无效关系的
RESTRICT,或CASCADE跨表删除):sqlite.org/foreignkeys.html#fk_actions
标签: android sqlite join subquery android-sqlite