Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何编写从用户';中删除产品项的sql查询;她最喜欢的名单_Mysql_Sql - Fatal编程技术网

Mysql 如何编写从用户';中删除产品项的sql查询;她最喜欢的名单

Mysql 如何编写从用户';中删除产品项的sql查询;她最喜欢的名单,mysql,sql,Mysql,Sql,我有3个表Products、Users和Favorite,我需要编写一个查询来从用户的Favorite列表中删除产品。我很困惑,因为我知道我需要删除和内部联接,但我需要从产品表中删除一行,该行存在于收藏夹中,但不应该从整个数据库中删除。我真的不知道如何表达它。我希望有人能帮忙谢谢你 产品表相关字段(所有可用产品) 产品ID| 产品名称| 产品描述| 产品成本 用户表相关字段 用户ID| 用户名| 用户电子邮件 常用表格字段 宠儿| usersfavouriteid(用户外键)| products

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

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

产品ID| 产品名称| 产品描述| 产品成本

用户表相关字段

用户ID| 用户名| 用户电子邮件

常用表格字段

宠儿| usersfavouriteid(用户外键)| productsfavoriteid(产品的外键)|


非常感谢您的帮助

如果您已经知道要删除的用户和产品的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:我建议您检查一下您收到的答案,然后再检查。接受向社区发出问题已经解决的信号。