如何使用SQLITE中的JOIN从2个表中删除数据

时间:2013-08-12 17:00:54

标签: android sqlite join subquery android-sqlite

我有以下表格

Tables Structure

我想从两个表中删除与 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)

但是没有执行删除操作。请建议我如何实现这一目标。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:2)

你会想要这个 -

DELETE 
  FROM optionToValues
 WHERE optionId IN ( SELECT optionId FROM productOptions WHERE product_id = 82 )

DELETE
  FROM productOptions
 WHERE product_id = 82

答案 1 :(得分:1)

听起来optionToValues.optionid应该是productOptions.optionID使用ON DELETE CASCADE的外键。有了这些,当您从productOptions删除某个条目时,optionToValues中的相应条目将会被删除。

或者,您可以在productOptions上定义一个触发器,该触发器会删除optionToValues行。