2016-03-08 53 views
1

刪除行如果我激發查詢刪除,它只從一個表中刪除而不是兩個。 請幫我找到解決辦法。在我試過的查詢下面給出。我想從表

DELETE m.* FROM master m 
INNER JOIN field f ON m.id = f.label_id 
WHERE f.id='13' 

材料表正在刪除,但不是在字段表的情況下。

+2

使用約束和刪除級聯 – scaisEdge

+0

你的意思是說make f.label_id到master.id的外鍵 – Divakarcool

回答

2
  1. 爲了從兩個表mf出 刪除條目的聯合結果:

    DELETE m,f FROM master m 
    INNER JOIN field f ON m.id = f.label_id 
    WHERE f.id='13'; 
    
  2. 爲了刪除從表m條目出加入的結果:

    DELETE m FROM master m 
    INNER JOIN field f ON m.id = f.label_id 
    WHERE f.id='13'; 
    
  3. 爲了從表f中刪除條目從加入的r esults:

    DELETE f FROM master m 
    INNER JOIN field f ON m.id = f.label_id 
    WHERE f.id='13'; 
    

注:一個更好的方法可能是把具有行爲ON DELETE CASCADE一個外鍵約束。但爲此,您需要InnoDb作爲您的存儲引擎。

+0

@ 1000111-謝謝你的朋友 – Divakarcool

+0

非常歡迎你:) @Divakarcool – 1000111