我有3个表的产品,用户和收藏夹,我需要编写查询以从用户的收藏夹列表中删除产品。我很困惑,因为我知道我需要删除和INNER JOIN,但是我需要从收藏夹中存在的产品表中删除一行,但是不应从整个数据库中删除该行。我真的不知道该怎么说。希望有人可以帮助您。
产品表相关字段(所有可用产品)
productid |产品名称产品说明|产品成本
用户表相关字段
userid |用户名|useremail
收藏夹表字段
收藏夹|usersfavouriteid(用户外键)|productsfavoriteid(产品外键)|
非常感谢您的帮助!
如果您已经知道要删除的用户和产品的ID,无需加入,则可以执行以下操作:
delete from favourite where productsfavoriteid = @productid and usersfavouriteid = @userid
例如,如果您需要通过产品名称删除,则可以使用delete ... from ... join ...
语法,如下所示:
delete f
from favourite f
inner join product p
on f.productsfavoriteid = p.productid
where
f.usersfavouriteid = @userid
and p.productname = @productname
如果我理解正确,您只需做:
delete f from favourites
where usersfavouriteid = ? and productsfavoriteid = ?;
这不会影响数据库中的其他表。