如何解决此错误“MySQL错误:1109(MULTI DELETE中的未知表'table_name')”?

时间:2013-08-21 06:28:08

标签: php mysql sql join sql-delete

当我运行以下查询时,我正在使用PHP和MySQL(服务器版本:5.5.31-0ubuntu0.12.04.2)为我的网站提供上述错误。我无法理解这个错误背后的任何线索。任何人都可以帮助我解决此错误并建议我现有查询的更改吗?供您参考我在下面写下我的查询:

DELETE
   ABC.theory_sheet_set,
   ABC.theory_sheet_questions
FROM
   ABC.theory_sheet_set AS theory_sheet_set,
   OCN.theory_sheet_questions AS theory_sheet_questions
WHERE
   theory_sheet_set.theory_sheet_set_id = theory_sheet_questions.theory_sheet_set_id
   AND theory_sheet_set.theory_sheet_id=".$theory_sheet_id

它给出的错误如下:

MySQL Error: 1109 (Unknown table 'theory_sheet_set' in MULTI DELETE)
Session halted.

我的数据库名称是 ABC 。实际上所有表名都是有效的,并且此查询中涉及的所有表都存在于数据库中。你能帮我解决一下这个问题吗?

2 个答案:

答案 0 :(得分:1)

如果您在查询开头使用稍后用于查询的别名(即在 DELETE 之后),那么它将正常工作。唯一的问题是它无法从数据库中识别表,因为您已使用别名将这些表引用到数据库中。因此,为了删除此错误,您必须使用在DELETE之后在查询中使用的别名。已纠正的查询如下所示:

DELETE theory_sheet_set, theory_sheet_questions FROM ABC.theory_sheet_set AS theory_sheet_set, ABC.theory_sheet_questions AS theory_sheet_questions  WHERE theory_sheet_set.theory_sheet_set_id=theory_sheet_questions.theory_sheet_set_id AND  theory_sheet_set.theory_sheet_id="$theory_sheet_id

答案 1 :(得分:0)

有语法错误,试试这个

DELETE *
FROM
theory_sheet_set theory_sheet_set
INNER JOIN 
theory_sheet_questions theory_sheet_questions ON  
theory_sheet_set.theory_sheet_set_id = theory_sheet_questions.theory_sheet_set_id
WHERE theory_sheet_set.theory_sheet_id=".$theory_sheet_id