2011-05-26 108 views
1

我有這樣的數據庫建模, 一個母表讓我們稱之爲table_mother和幾個子表。 關係beetween table_mother和孩子的是這樣的:如何從同一個查詢中的多個子表中刪除記錄

所有表孩子的有一個外鍵樣的名字作爲母表(id_table_mother)(關係爲1-> n的id_table_mother是uniq的和tbale孩子能得到的ID幾個條目id_table_mother)

我想與母親表中刪除在孩子的表至極的所有記錄都涉及不多,現在我嘗試這樣的事情

  DELETE FROM tb_child_1,tb_child_2,tb_child_3 
       WHERE 
tb_child_1.id_table_mother 
AND tb_child_2.id_table_mother 
AND tb_child_3.id_table_mother 
       NOT IN (SELECT id_table_mother FROM tb_table_mother); 

THX

編輯:這就是我現在

delete from tb_child_1 where id_mother not in (select id_mother from tb_mother_table); 
delete from tb_child_2 where id_mother not in (select id_mother from tb_mother_table); 

任何「全球性」的解決方案結束了? 也是我的數據庫沒有InnoDB的,所以我可以「T與FOREIGH鍵和東西

+1

你可以使用級聯的觸發這裏是一個有用的linkhttp://publib.boulder.ibm.com/infocenter/idshelp/v10/index.jsp話題=/COM? ibm.sqls.doc/sqls362.htm看看是否有幫助 – Devjosh 2011-05-26 09:20:53

+0

sry無法到達該頁面(未找到) – krifur 2011-05-26 12:09:49

+0

http:// p ublib.boulder.ibm.com/infocenter/idshelp/v10/index.jsp?topic=/com.ib m.sqls.doc/sqls362.htm複製並粘貼到您的瀏覽器地址欄 – Devjosh 2011-05-26 12:25:42

回答

0

寫3個查詢像這樣的 -

DELETE 
    tb_child_1 
FROM 
    tb_table_mother 
LEFT JOIN 
    tb_child_1 
    ON tb_table_mother.id_table_mother = tb_child_1.id_table_mother 
WHERE 
    tb_child_1.id_table_mother IS NULL; 
相關問題