Mysql 如何编写从用户';中删除产品项的sql查询;她最喜欢的名单
我有3个表Products、Users和Favorite,我需要编写一个查询来从用户的Favorite列表中删除产品。我很困惑,因为我知道我需要删除和内部联接,但我需要从产品表中删除一行,该行存在于收藏夹中,但不应该从整个数据库中删除。我真的不知道如何表达它。我希望有人能帮忙谢谢你 产品表相关字段(所有可用产品) 产品ID| 产品名称| 产品描述| 产品成本 用户表相关字段 用户ID| 用户名| 用户电子邮件 常用表格字段 宠儿| usersfavouriteid(用户外键)| productsfavoriteid(产品的外键)|Mysql 如何编写从用户';中删除产品项的sql查询;她最喜欢的名单,mysql,sql,Mysql,Sql,我有3个表Products、Users和Favorite,我需要编写一个查询来从用户的Favorite列表中删除产品。我很困惑,因为我知道我需要删除和内部联接,但我需要从产品表中删除一行,该行存在于收藏夹中,但不应该从整个数据库中删除。我真的不知道如何表达它。我希望有人能帮忙谢谢你 产品表相关字段(所有可用产品) 产品ID| 产品名称| 产品描述| 产品成本 用户表相关字段 用户ID| 用户名| 用户电子邮件 常用表格字段 宠儿| usersfavouriteid(用户外键)| products
非常感谢您的帮助 如果您已经知道要删除的用户和产品的id,则无需加入,只需执行以下操作:
delete from favourite where productsfavoriteid = @productid and usersfavouriteid = @userid
例如,如果需要按产品名称删除,可以使用delete。。。从…起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 = ?;
这不会对数据库中的其他表产生影响。示例数据(之前和之后)将阐明您真正想要做的事情。感谢您的回复,但请删除“f”,f是一个变量?可以按原样键入?对不起,我是新来的sql@chloeong:
f
是一个表别名,代表它所别名的表(这里,favorite
)。@chloeong:我建议您检查一下您收到的答案,然后再检查。接受向社区发出问题已经解决的信号。