2013-03-26 124 views
1

由于一切正确,我无法理解错误。 OCN是数据库的名称。我在MySQL控制台上检查了这个查询,它在那里运行得很好。但是在函数代码中它给出了错误。任何人都可以帮我解决这个错误吗?提前致谢。这个sql查询有什么问题?

这是我的SQL查询:

DELETE 
     OCN.practice_sheet_set, 
     OCN.practice_sheet_questions 
FROM 
     OCN.practice_sheet_set AS practice_sheet_set, 
     OCN.practice_sheet_questions AS practice_sheet_questions 
WHERE  
     practice_sheet_set.practice_sheet_set_id = practice_sheet_questions.practice_sheet_set_id 
     AND practice_sheet_set.practice_sheet_id=2 

MySQL的错误:

1109(多未知表 'practice_sheet_set' DELETE)

+0

尝试'删除OCN.practice_sheet_set。*,OCN.practice_sheet_questions。*'。 – Knelis 2013-03-26 11:02:48

+0

@Pranay Rana,CornéM:你在哪里看到这样的语法:http://dev.mysql.com/doc/refman/5.5/en/delete.html ?? – zerkms 2013-03-26 11:07:13

+0

您可以试试 – Amit 2013-03-26 11:12:58

回答

5

也许这应该是

DELETE 
     practice_sheet_set, 
     practice_sheet_questions 
FROM 
     OCN.practice_sheet_set AS practice_sheet_set, 
     OCN.practice_sheet_questions AS practice_sheet_questions 

AS陈述(这个查询有什么关系?)OCN会丢失。

+0

Thx寻求帮助 – PHPLover 2013-03-26 11:28:09

1

这个查询应该工作

DELETE 
     pss, 
     psq 
FROM 
     OCN.practice_sheet_set AS pss, 
     OCN.practice_sheet_questions AS psq 
WHERE  
     pss.practice_sheet_set_id = psq.practice_sheet_set_id 
     AND pss.practice_sheet_id=2 

只是删除“AS”或者,如果你打算使用它,然后删除应使用表引用,而不是表名的

0

你可以试试这个

DELETE 
    OCN.practice_sheet_set,OCN.practice_sheet_questions 
FROM OCN.practice_sheet_set AS practice_sheet_set 
where practice_sheet_set.practice_sheet_set_id in 
    (select practice_sheet_questions.practice_sheet_set_id 
     from OCN.practice_sheet_questions AS practice_sheet_questions 
     where practice_sheet_set.practice_sheet_set_id=practice_sheet_questions.practice_sheet_set_id 
     AND practice_sheet_set.practice_sheet_id=2);