2012-07-17 55 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