国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL SQL UPDATE語句出現#1093錯誤解決辦法

2024-07-24 12:37:59
字體:
來源:轉載
供稿:網友

本文章來給各位同學介紹在MySQL SQL UPDATE語句出現#1093錯誤解決辦法,有碰互此問題的朋友不防進入參考參考.

我使用了這樣一個SQL,代碼如下:

  1. UPDATE `student_quiz_answer` SET `article_id`= (SELECT qa.article_id, sqa.answer_id FROM student_quiz_answer sqa LEFT JOIN `quiz_answer` qa ON sqa.answer_id = qa.answer_id where qa.article_id > 0) 

問題來自MySQL更新Table某個字段時,如果 Update 值中存在自身Table 的 Select 就會遇到這個錯誤提示:

#1093 – You can’t specify target table ‘student_quiz_answer’ for update in FROM clause

但是SQL的 Update 值又必須根據當前Table的字段進行查詢.

把 Update 值作為一個新 Table,比如 t2,本身 table 別名為 t1,條件子句就是 t1 和 t2 的關聯值相等.

正確實現方法,需要建立一張中間表,中間表的內容和frjg表完全相同,之后進行修改frjg表,中間和frjg表之間存在“主外鍵關系”,并不存在這種關系,修改為這樣一個 SQL 語句:

  1. UPDATE `student_quiz_answer` t1, (SELECT qa.article_id, sqa.answer_id FROM student_quiz_answer sqa LEFT JOIN `quiz_answer` qa ON sqa.answer_id = qa.answer_id where qa.article_id > 0) t2  SET t1.`article_id`= t2.article_id WHERE t1.answer_id = t2.answer_id  --Vevb.com 

總結:1093錯誤為,但修改一個表的時候子查詢不能是同一個表,解決辦法,把子查詢再套一層,變成原來表的孫子查詢就可以了,例如:

insert into  gg  set id3= (select c.a+1  from (select max(id3) as a  from gg) c) 這是對的

但是 insert into  gg  set id3= (select max(id3) as a  from gg) 就會報1093錯誤.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 上蔡县| 玉门市| 徐水县| 汾西县| 即墨市| 长沙县| 元阳县| 河东区| 商洛市| 朔州市| 开封市| 五峰| 隆化县| 临西县| 乌拉特中旗| 拜泉县| 连平县| 庆元县| 康平县| 平谷区| 茂名市| 留坝县| 抚顺市| 芜湖市| 雅安市| 亳州市| 修武县| 登封市| 绍兴市| 石渠县| 南丹县| 鄂托克旗| 浦江县| 嘉祥县| 辉南县| 吉木萨尔县| 阳信县| 绥江县| 陕西省| 瑞安市| 兴海县|