我有三张桌子。 产品,公司,员工
Product表的ProductId是公司的foregin密钥 公司表的CompanyId是Employee
的foregin密钥因此,在从Product表中删除ProductId时,其他表中的所有相关记录都应删除。但我无法触摸架构(不能使用alter table)。在这种情况下我该如何编写查询..
答案 0 :(得分:9)
如果无法添加传播删除的约束,则必须自己编写所有必要的删除:
delete employee where companyid in (select companyid from company c where productid = xxx);
delete company where productid=xxx;
delete product where productid=xxx;
答案 1 :(得分:0)
尝试此选项。我没有环境来测试这个。我想有一些改变它应该在你的最后工作。
DELETE Product,Company,Employee
FROM
user LEFT JOIN items ON product.productid = company.productid
LEFT JOIN orders ON company.productid = product.productid
WHERE product.productid = [$productid]