我有 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 = ?;
这应该不会影响数据库中的其他表。