我的数据库中目前有 2 个表,一个名为 User
,另一个名为 Product
,其中 User
中的每一行都存储有关一个用户,Product
中的每一行存储一个用户拥有的产品:
User (Username, password, phone_num, address, email)
Product (Username, item_name, type, taste, price, image)
User 有主键 Username
,Product 有主键 Username
和 item_name
,Product 中有 Username
也是一个外键,引用 User 中的Username
。
我正在尝试使用连接查询,该查询在执行时会删除用户以及与该特定用户相关的所有产品。现在我在 PHP 中有两个独立的工作查询:
"DELETE from User where Username='$username'";
"DELETE from Product where Username='$username'";
有没有一种方法可以使用 join 组合这两个查询来实现相同的目标?谢谢。
最佳答案
不,您不能在一个命令中同时删除两个表。以下是文档的链接: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
关于mysql - SQL使用全连接删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36704262/