我有以下表格
我想从两个表中删除与 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)
但是没有执行删除操作。请建议我如何实现这一目标。任何帮助表示赞赏。
答案 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
行。