2015-10-29 47 views
0

我想通过id得到下面的查询删除所有的行,但查询运行正常,但它没有执行 - 没有错误或行影响。我用tripple检查了表格中的所有颜色名称,并且它们是正确的。MYSQL加入查询没有删除

MYSQL:

DELETE c FROM campaigns c 
JOIN campaignsFroms f ON f.campaign_id = c.id 
JOIN campaignsRaw r ON r.campaignId = c.id 
JOIN campaignsSubjects s ON s.campaign_id = c.id 
WHERE c.id = 1582 
+2

你可以检查'SELECT * FROM ..'是否返回记录? – Halcyon

回答

1

我不知道,如果你想这样的:

DELETE c, f, r, s 
FROM campaigns c LEFT JOIN 
    campaignsFroms f 
    ON f.campaign_id = c.id LEFT JOIN 
    campaignsRaw r 
    ON r.campaignId = c.id LEFT JOIN 
    campaignsSubjects s 
    ON s.campaign_id = c.id 
WHERE c.id = 1582; 

这将从所有连接到广告活动的表中删除记录。 LEFT JOIN是为了确保行不会被连接所考虑。

+0

问题中的查询仅从'campaign'中删除。该查询将从所有4个表中删除。问题在哪里说这是所期望的结果? – Barmar

+0

@Barmar。 。 。我得到了OP想从所有表中删除的想法。一种可能性是没有因为外键关系而被删除。 –

+0

可能是正确的,因为他接受了答案。但如果我们能让他首先澄清这个问题,那将会很好。 – Barmar