2012-04-23 61 views
2

我想知道是否有人知道如何解決以下問題。我一直在尋找一個解決方案大約一週,到目前爲止,沒有運氣。MySQL - 如果不同表中的值不存在於任何行中,則刪除一個表中的行

我們有一個網站,如果他們沒有任何關聯的用戶,我們需要刪除數以萬計的城市。

所以基本上,如果表格「用戶」中不存在「城市id」,我們必須刪除表格「城市」。假設我們需要刪除'users.city_id'列中未找到'cities.city_id'的所有行,這意味着沒有用戶與該城市相關聯。

基本上需要發生的是,對於'城市'中的每一行,MySQL需要查看users.city_id中的每一行,以查看該值是否存在,如果是,則移至下一行if不是它刪除城市中的行,然後移動到下一行。

我甚至不確定像這樣的查詢是否可能...任何意見將不勝感激!

回答

4

無法訪問完整模式,下面是我的嘗試。做任何刪除操作之前備份您的數據庫,以防萬一出現故障,我不想被起訴:(

DELETE FROM cities WHERE id NOT IN (SELECT city_id FROM USERS); 
相關問題