django.db.utils.DatabaseError: (1093, "You can't specify target table 'fee_details_invoices' for update in FROM clause") 错误分析解决: 第一行代码的意思是获取某些条件行的某个字段 第二行代码去删除这些行包括这个字段值的记录 依照文档第一行代码返回的应该是一个list啊 见文档 >>>Entry.obj...
You can't specify target table 'users' for update in FROM clause报错原因和例子 这个报错通常是因为在 UPDATE 语句中使用了子查询,并且子查询中引用了待更新的目标表(例如 'users' 表)。这会导致 MySQL 报错,因为 MySQL 不允许在子查询中直接引用待更新的目标表,以防止出现不确定的结果。 以下是一个示例和...
UPDATE acct acct1 SET acct1.Processed = '2' WHERE acct1.acctid = ( SELECT acct2.acctid from acct acct2 where acct2.Processed = '2' AND acct1.acctid=acct2.acctid) Sorry, you can't reply to this topic. It has been closed....
一、发现问题 在一次准备处理历史数据sql时,出现这么一个问题:You can't specify target table '表名' for update in FROM clause,大致的意思就是:不能在同一张表中先select再update。 在此进行一下复盘沉淀,使用测试sql复现当时的场景(mysql是8版本),准备测试数据: CREATE TABLE `student` ( `id` int NOT ...
出现1093 - You can't specify target table 'daily_job' for update in FROM clause这个错误,它表面的意思是不能在同一个sql语句中,先select同一个表的某些值,然后再update这个表。 其实原因就是MySQL不支持,在一条语句对同一个表,先查询再更新的操作。
You can't specify target table '表名' for update in FROM clause 翻译为:不能先select出同一表中的某些值,再update这个表(在同一语句中) 实例: 表:result 表result 表student 表student 表:grade 表grade 要求:给大一成绩不合格的分数加5分 思路: ...
结果如下:不能先select出同一表中的某些值,再update这个表 企业微信截图_16564851387006.png 怎么处理呢,很简单,将查询结果加多一个别表名再进行查询即可,如下 DELETEFROMwork_item_role_permissionWHEREid IN(SELECTresult.id FROM(SELECTt.id FROM(SELECTt1.id,t1.permission_code,t1.work_item_role_idFROMwork...
DELETE FROM blur_article WHERE id NOT IN (SELECT id FROM (SELECT min(id) AS id FROM blur_article GROUP BY title ) t )方案二:1.创建一张临时表,将要删除的条件自动存入临时表中:2.再根据临时表,删除主表数据:3.最后删除掉临时表:完整代码如下:1.create table temp as select ...
在执行 mysql 语句时,出现1093 - You can't specify target table 'daily_job' for update in FROM clause这个错误。 二、错误原因 出现1093 - You can't specify target table 'daily_job' for update in FROM clause这个错误,它表面的意思是不能在同一个sql语句中,先select同一个表的某些值,然后再update...
中间添加一个SELECT就可以了,这是mysql的问题:DELETE FROM sql_test WHERE id NOT IN (SELECT * FROM (SELECT MIN(id) AS col1 FROM sql_test GROUP BY num,NAME,lesson_name,lesson_num,mark ) AS tmp);