2015-10-29 62 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