1

我有下表

表结构

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

但不执行删除操作。请给我一些建议,我们可以如何实现这一目标。任何帮助表示赞赏。

4

2 回答 2

2

你会想要这个——

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

DELETE
  FROM productOptions
 WHERE product_id = 82
于 2013-08-12T18:11:57.403 回答
1

听起来应该是使用optionToValues.optionid的外键。有了这个,当您从 中删除一个条目时,它将为您删除相应的条目。productOptions.optionIDON DELETE CASCADEproductOptionsoptionToValues

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

于 2013-08-13T16:25:01.527 回答