如何编写用于从用户收藏夹列表中删除产品项的 sql 查询



我有 3 个表产品、用户和收藏夹,我需要编写一个查询以从用户的收藏夹列表中删除该产品。我很困惑,因为我知道我需要删除和内部连接,但我需要从收藏夹中存在的产品表中删除一行,但不应从整个数据库中删除它。我真的不知道如何措辞。我希望有人能帮忙谢谢你。

产品表相关字段(所有可用产品(

产品编号 | 产品名称 | 产品描述 | 产品成本

用户表相关字段

用户标识 | 用户名 | 用户邮箱

最喜欢的表字段

收藏夹 | 用户收藏夹 (用户的外键( | 产品收藏夹 (产品的外键( |

非常感谢您的帮助!

如果您已经知道要删除的用户和产品的 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 = ?;

这应该不会影响数据库中的其他表。

最新更新