这是我的SQLite数据库的结构:

我正在尝试删除属于一个select列的所有列,而这个select列属于一个特定的列。
DELETE FROM OrderData
WHERE CustData.Customer_ID = OrderInfo.Cust_ID
AND OrderData.Order_ID = OrderInfo.Order_ID
AND CustData.Bus_Name = 'Albertsons' 我知道SQLite不支持DELETE语句中的JOIN,所以留给我的是WHERE和and;有人能告诉我正确的表达方式吗?
发布于 2012-06-02 01:08:53
您可以尝试使用IN子句进行子查询。类似于:
DELETE FROM OrderData WHERE OrderData.Order_ID IN
(SELECT OrderInfo.Order_ID
FROM OrderInfo
JOIN CustData on OrderData.Order_ID = OrderInfo.Order_ID
WHERE CustData.Bus_Name = 'Albertsons')要在删除前测试查询,只需执行以下操作:(将返回删除查询将删除的所有行)
SELECT * FROM OrderData WHERE OrderData.Order_ID IN
(SELECT OrderInfo.Order_ID
FROM OrderInfo
JOIN CustData on OrderData.Order_ID = OrderInfo.Order_ID
WHERE CustData.Bus_Name = 'Albertsons')发布于 2012-06-02 01:07:24
你不能这么做。
SQLite (v3.6.19以下)不支持外键约束
,但您可以使用triggers,例如Check this它会对您有所帮助。
如果您有v3.6.19,它已经支持带有ON UPDATE或DELETE CASCADE Read SQLite Foreign Key Support外部约束
编辑:
或like写道@Paul Sasik
发布于 2012-06-02 01:09:44
试一试
DELETE FROM OrderData
WHERE OrderData.Order_ID IN (SELECT oi.Order_ID FROM OrderInfo oi
INNER JOIN CustData cd ON oi.Cust_id = cd.Customer_Id WHERE cd.Bus_Name='Albertsons')https://stackoverflow.com/questions/10854520
复制相似问题