SQL使用完全连接删除行

时间:2016-04-18 21:04:31

标签: mysql

我目前在我的数据库中有两个表,一个名为User,另一个名为Product,其中User中的每一行都存储有关用户的信息,Product中的每一行都包含 User (Username, password, phone_num, address, email) Product (Username, item_name, type, taste, price, image) 中的每一行。 1}}存储一个用户拥有的产品:

Username

用户拥有主键Username,而产品包含主键item_nameUsername,而产品中的Username也是引用{{1}的外键在用户中。

我正在尝试使用连接查询,该连接查询在执行时会删除用户以及与此特定用户相关的所有产品。现在我在PHP中有两个独立的工作查询:

"DELETE from User where Username='$username'";
"DELETE from Product where Username='$username'";

有没有办法可以使用join将这两个查询组合起来实现相同的目标?谢谢。

1 个答案:

答案 0 :(得分:0)

不,您无法在一个命令中同时从两个表中删除。以下是文档的链接:http://dev.mysql.com/doc/refman/5.7/en/delete.html

您可以做的是通过外键约束设置级联删除。如果在“产品”表中存在外键引用时删除用户,则该行也将自动删除。您将实现使用单个命令删除两者的目标,但您不会使用连接而是使用约束。这是约束文档:http://dev.mysql.com/doc/refman/5.7/en/create-table-foreign-keys.html