我想删除数据肯定存在于 ad_master 中的多个表格中的数据,但子表格会不时变化。我尝试了以下查询,但它至少不会删除单个记录并保持沉默。 我想删除与我的给定号码($ delete_no)相关联的每条记录(如果它们存在于我的任何给定表格中)。
DELETE am,sub1,sub2,sub3
FROM ad_master am
INNER JOIN ad_vehicles sub1
ON sub1.Ad_no=am.Ad_no
INNER JOIN ad_properties sub2
ON sub2.Ad_no=am.Ad_no
INNER JOIN ad_electronics sub3
ON sub3.Ad_no=am.Ad_no
WHERE am.Ad_no=$delete_no
请指导我解决这个问题。感谢名单。
答案 0 :(得分:5)
尝试LEFT JOIN而不是INNER。 使用INNER JOIN,您可以创建两个表的交集,如果ad_vehicles中不存在$ delete_no,则结果为空。
答案 1 :(得分:0)
您正在尝试实施参照完整性。让数据库做到这一点,它比你做得好多了。 Ad_no应该是除master之外的所有表中的外键,在每种情况下引用master,并定义为删除级联。然后你要做的就是删除主行。