我已经尝试了很多很多组合,但似乎都没有工作=(
我有这两个SQL命令:
$sql = "DELETE FROM infogt2000_partner_lead_invoice WHERE infogt2000_partner_lead_invoice_lead_id = ".$id_invoice;
$sql = "DELETE FROM infogt2000_partner_lead WHERE infogt2000_partner_lead_id = ".$id;
他们必须一起执行""。好吧,如果我从partner_lead中删除了一个信息,它还必须从infogt2000_partner_lead_invoice中删除相同的信息。 infogt2000_partner_lead_id和infogt2000_partner_lead_invoice_lead_id中的id是相同的,但我无法正确写入。
我目前正在使用MySQL,类型是MyISAM
答案 0 :(得分:0)
您应该考虑将数据库表转换为InnoDB,以便您可以创建外键约束以在删除时级联。否则,您必须编写多个查询,从层次结构链中的最低项开始,一直到最父表。例如:删除孙子,然后是孩子,然后是父母。
答案 1 :(得分:0)
我猜您需要使用内连接:
DELETE infogt2000_partner_lead_invoice, infogt2000_partner_lead
FROM infogt2000_partner_lead_invoice
INNER JOIN infogt2000_partner_lead
WHERE infogt2000_partner_lead_invoice.infogt2000_partner_lead_invoice_lead_id = infogt2000_partner_lead.infogt2000_partner_lead_id
AND infogt2000_partner_lead_invoice_lead_id = $id