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

问题描述 投票:0回答:2

我有3个表的产品,用户和收藏夹,我需要编写查询以从用户的收藏夹列表中删除产品。我很困惑,因为我知道我需要删除和INNER JOIN,但是我需要从收藏夹中存在的产品表中删除一行,但是不应从整个数据库中删除该行。我真的不知道该怎么说。希望有人可以帮助您。

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

productid |产品名称产品说明|产品成本

用户表相关字段

userid |用户名|useremail

收藏夹表字段

收藏夹|usersfavouriteid(用户外键)|productsfavoriteid(产品外键)|

非常感谢您的帮助!

mysql sql
2个回答
0
投票

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

0
投票

如果我理解正确,您只需做:

delete f from favourites
    where usersfavouriteid = ? and productsfavoriteid = ?;

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

© www.soinside.com 2019 - 2024. All rights reserved.