2011-10-12 95 views
0

我有一個表delete_requests,其中存儲了我用戶表的條目的刪除請求的id。是否可以從delete_requests中刪除信息作爲條件?MySQL:從子查詢中刪除信息

我的問題是,結果集通常不會限制爲一行,而是返回幾個。

DELETE FROM users WHERE id=(SELECT id FROM delete_requests) 

因此MySQL抱怨:

#1242 - Subquery returns more than 1 row 

可這在一個語句來完成,而無需把邏輯到執行的應用程序?

+0

它應該的,因爲你不限制子查詢來獲取特定的記錄它獲取的所有記錄和** = **意味着你只希望一場比賽。 – punit

+0

你試過用ID IN(子查詢),而不是id = – punit

+0

謝謝你,我試了一下它很好用。 –

回答

5

使用IN子句

DELETE FROM users WHERE id IN (SELECT id FROM delete_requests) 
+0

謝謝Shakti,它現在正在工作! –

+0

@Frank:您永遠的歡迎 –

2

您可以使用in子句。

DELETE FROM users WHERE id IN (SELECT id FROM delete_requests) 
2
DELETE FROM users WHERE id IN (SELECT id FROM delete_requests)