当我运行以下查询时,我正在使用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 。实际上所有表名都是有效的,并且此查询中涉及的所有表都存在于数据库中。你能帮我解决一下这个问题吗?
答案 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