有時候我們需要刪除在兩個表中都存在的記錄,這就需要用到MySQL的JOIN語句。假設有兩個表,分別為table1和table2。
DELETE FROM table1 WHERE EXISTS ( SELECT 1 FROM table2 WHERE table1.column1 = table2.column1 )
在這個例子中,我們使用了一個子查詢來查找在table2中有對應記錄的行,然后使用EXISTS函數(shù)將其放在了WHERE子句中。如果subquery返回True,那么我們就刪除當前 在table1中的記錄。
同樣地,如果我們想要從兩個表中刪除所有相同的記錄,我們需要稍稍修改一下DELETE語句。
DELETE table1, table2 FROM table1 JOIN table2 ON table1.column1 = table2.column1;
注意到這里我們在DELETE語句中同時指定了兩個表。使用JOIN語句,我們可以將兩個表串起來,使用ON關鍵字來指明哪些行應該被刪除。這個語句將會同時從table1和table2中刪除那些具有相同column1的記錄。