这个SQL查询有什么问题?

时间:2013-03-26 10:59:48

标签: mysql sql

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

这是我的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(MULTI DELETE中的未知表'practice_sheet_set')

3 个答案:

答案 0 :(得分: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会丢失。

答案 1 :(得分: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'或者如果您打算使用它,那么删除应该使用表引用而不是表名

答案 2 :(得分: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);