2012-07-17 60 views
0

嗨我有一個相當複雜的查詢,我一直在SQLite中使用了很長時間。它開始是這樣的:如何從同一表中選擇刪除MySQL

delete FROM 
    verbal_sets 
WHERE verbal_sets.verbal_set_id IN( 
    SELECT 
     F.verbal_set_id 
    FROM verbal_sets AS F WHERE Exists( 
     SELECT 
     knowledge_id, phrase_id,first_entity_text, second_entity_text,verbal_relation_text, Count(verbal_set_id) 
     FROM 
     (...) 

我現在創建相同軟件的一個MySQL支持的版本,但MySQL不喜歡這樣的查詢。它返回錯誤:

[Err] 1093 - You can't specify target table 'verbal_sets' for update in FROM clause 

我沒有MySQL的具體經驗。任何人都可以指出我的這個查詢必須做什麼?

+0

的可能重複[MySQL錯誤1093 - 無法指定目標表更新在FROM子句] (http://stackoverflow.com/q/45494/)和[**許多**其他](http://stackoverflow.com/search?q=%5bmysql%5d%20%2b%22you%20can%27t %20specify%20靶%20table%22%20%2B%22for%20update%20英寸%22%20%2bdelete)。 – outis 2012-07-17 22:17:56

+0

如果它有任何不同,你可以發佈查詢的MySQL版本嗎? – 2012-07-17 22:18:17

+0

@ChrisC - MySQL查詢是我正在嘗試構建的。這是SQLite查詢。 – 2012-07-18 10:50:30

回答

-1

只是跳過幾行字:

DELETE FROM 
    verbal_sets 
WHERE Exists( 
     SELECT 
     knowledge_id, phrase_id,first_entity_text, second_entity_text,verbal_relation_text, Count(verbal_set_id) 
     FROM 
0

我希望這會幫助你,

delete FROM 
    verbal_sets 
WHERE verbal_set_id IN( 
    SELECT * 
    From( 
     SELECT knowledge_id, 
       phrase_id, 
       first_entity_text, 
       second_entity_text, 
       verbal_relation_text, 
       Count(verbal_set_id) 
     FROM verbal_sets 
     ) as c 
) 
+0

你應該添加一些解釋,描述爲什麼這是答案... – tmthydvnprt 2016-06-04 11:29:07

+0

你應該添加一些解釋,說明爲什麼這是答案... – Sandeep 2016-06-04 11:42:11

+0

其實,我正在處理同樣的問題,我得到了這個解決方案。 – 2016-06-04 11:42:40