我目前在我的数据库中有两个表,一个名为User
,另一个名为Product
,其中User
中的每一行都存储有关用户的信息,Product
中的每一行都包含 User (Username, password, phone_num, address, email)
Product (Username, item_name, type, taste, price, image)
中的每一行。 1}}存储一个用户拥有的产品:
Username
用户拥有主键Username
,而产品包含主键item_name
和Username
,而产品中的Username
也是引用{{1}的外键在用户中。
我正在尝试使用连接查询,该连接查询在执行时会删除用户以及与此特定用户相关的所有产品。现在我在PHP中有两个独立的工作查询:
"DELETE from User where Username='$username'";
"DELETE from Product where Username='$username'";
有没有办法可以使用join将这两个查询组合起来实现相同的目标?谢谢。
答案 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