Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在SQLITE中使用JOIN从2个表中删除数据_Android_Sqlite_Join_Subquery_Android Sqlite - Fatal编程技术网

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

Android 如何在SQLITE中使用JOIN从2个表中删除数据,android,sqlite,join,subquery,android-sqlite,Android,Sqlite,Join,Subquery,Android Sqlite,我有下表 我想从两个表中删除与productId对应的数据。我已经研究过连接不能在sqlite中与DELETE一起应用,所以我尝试了下面的查询 DELETE FROM optionToValues WHERE optionToValues.optionId IN (SELECT optionToValues.optionId FROM optionToValues JOIN productOptions on productOptions.optionId = optionToValue

我有下表

我想从两个表中删除与productId对应的数据。我已经研究过连接不能在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)
但不执行删除操作。请给我一些建议,我们如何才能做到这一点。感谢您的帮助

你会想要这个的--


这听起来像是
optionValue。optionid
应该是
productOptions的外键。optionid
在删除级联时使用
。这样,当您从
productOptions
中删除条目时,
optionValue
中相应的条目将被删除


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

该查询实际上没有意义。您正在一组optionID中查找产品标识。也许您只想从product\u id=82的productOptions中删除
?如果没有,你到底想做什么?或者你想删除某个产品的所有选项?@323go我必须删除productoptions,然后该产品也无法用一条语句“从两个表中删除数据”。您可以通过外键操作(例如,在获得无效关系的情况下执行
限制
删除操作,或者跨表执行
级联
删除操作)来实现这一点:
DELETE 
  FROM optionToValues
 WHERE optionId IN ( SELECT optionId FROM productOptions WHERE product_id = 82 )
DELETE
  FROM productOptions
 WHERE product_id = 82