`
飘北丶D
  • 浏览: 2239 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

update时使用子查询出错

 
阅读更多
example:
UPDATE test_table SET no= '0001' WHERE id = (SELECT id FROM test_table WHERE de='de')

error:
You can't specify target table 'test_table' for update in FROM clause

也就是说在update的时候不能用子查询查询当前表.
在其他数据库中这种写法是支持的,由于第一次用mysql 就不太熟悉.后来查询了资料.
mysql不支持这种方式.也就只能换一种方式来写.

方法1:
SET @oid =(SELECT id FROM test_table WHERE de='de');
UPDATE test_table SET no= '0001' WHERE id = @oid;


方法2:
UPDATE test_table SET no= '0001' WHERE id =(select * from (SELECT id FROM test_table WHERE de='de') c)
分享到:
评论

相关推荐

    SQL查询分析器修正分离版

    7. **错误调试**:当SQL语句执行出错时,分析器会提供错误信息,帮助用户定位并解决问题。 8. **数据导出和导入**:可以使用查询分析器将数据导出到文件,或将文件导入到数据库,进行数据迁移或备份恢复。 9. **...

    数据库常见操作语句小结

    在使用时,可以直接插入所有的字段值,也可以有选择性地插入某些字段。如果省略了某些字段,那么这些字段必须允许NULL值或者拥有默认值,否则SQL语句执行会出错。 对于Oracle数据库中的子查询使用,特别是exists和...

    山东大学数据库实验四.docx

    例如,在test4_01表中,我们使用子查询来计算总分,使用了SUM函数来计算学生的总分。在test4_02表中,我们使用了AVG函数来计算平均分。在test4_03表中,我们使用了子查询来计算学分,并使用了MAX函数来获取最高的...

    sql warning报错出错信息说明

    - **错误 194**:SELECT INTO 语句不能包含子查询。这表示 SELECT INTO 语句不能包含子查询。 - **错误 195**:''%1!'' 强制转换 %3! 不成功。与错误 155 类似。 - **错误 196**:SELECT INTO 语句之前不能有 UNION ...

    SQL数据库的命令集

    子查询是指在一个查询内部嵌套另一个查询。例如查找年龄大于平均年龄的所有员工: ```sql SELECT * FROM employees WHERE age > (SELECT AVG(age) FROM employees); ``` #### 视图 视图是基于一个或多个表的结果集...

    查询分析器简版

    此外,还能进行复杂的联接操作、子查询以及集合操作。 2. 数据浏览:查询结果可以以表格形式展示,方便用户查看、排序和筛选数据。这对于日常的数据分析和问题排查至关重要。 3. 性能优化:查询分析器通常会提供...

    Access数据库查询分析器

    2. **SQL语句执行**:用户可以直接在查询分析器中输入SQL查询,无论是简单的SELECT语句,还是复杂的联接、子查询或聚合函数,都能得到准确的结果。这对于数据分析、报表生成或数据验证等工作流程来说,极大地提高了...

    ORACLE数据库习题.pdf

    14. **子查询的使用**:在SQL的SELECT、UPDATE和DELETE语句中都可以使用子查询。 15. **ALTER TABLE语句**:在表DEPT中添加非空列`COMP`,该列会添加到表的末尾,并且所有现有记录都需要为此新列提供值,否则会出错...

    SQL Server数据库开发的二十一条军规

    - **优化子查询:** 当查询中包含子查询时,考虑将其转换为更有效的JOIN操作。 通过遵循以上指导原则,可以显著提升SQL Server数据库开发的效率和质量。这些实践不仅适用于SQL Server,对于其他关系型数据库管理...

    常用数据库保留字列表

    5. 连接和子查询:JOIN、LEFT JOIN、INNER JOIN、OUTER JOIN、子查询相关的保留字(如IN、NOT IN、EXISTS等)。 6. 分组和排序:GROUP BY、ORDER BY、HAVING等。 7. 其他:如索引(INDEX)、视图(VIEW)、触发器...

    第十二节 临时文件.docx

    5. **视图和子查询的临时持久化文件**:在执行涉及视图或复杂子查询的SQL语句时,SQLite可能会创建临时文件来存储中间结果,提高查询效率。这些文件同样在查询完成后被删除。 6. **临时索引文件**:当查询需要临时...

    引用SQL编写的销售系统

    在分析销售数据时,子查询可以用来找出最畅销的产品或最有价值的客户。 9. **索引优化**:为了提高查询性能,你可能需要为常用查询的字段创建索引。理解何时何地创建索引对于数据库性能的优化至关重要。 10. **...

    sql语句自动生成器

    - **联接与子查询**:对于涉及多表的复杂查询,工具能够处理JOIN操作和嵌套的子查询,生成高效的查询语句。 - **聚合函数**:支持使用SUM、AVG、COUNT等聚合函数进行统计分析。 3. **用户界面与易用性** "SQL...

    SQL server 实验出错记录

    在使用`UPDATE`语句结合子查询时,如果子查询返回多条结果,会导致错误。解决办法是在子查询中添加适当的过滤条件,使其只返回单个值,或者考虑使用`IN`或`EXISTS`子句。 6. **为标识列指定显式值**: 如果你想在...

    MySql 联合修改

    这种方式与第一种方式类似,但是它使用了子查询的方式将`tb2`表作为临时表进行操作。这种方式在某些情况下可能更灵活,尤其是当需要对`tb2`表进行额外的筛选或处理时。 ##### CASE3: 使用分组后的子查询更新 ```...

    高SQL性能的方法

    在某些情况下,可以考虑使用子查询来替代复杂的 `ORDER BY` 条件,以达到同样的效果。 #### 四、NOT IN 与 NOT EXISTS 的选择 在处理不存在的情况时,应尽量避免使用 `NOT IN`,而选择使用 `NOT EXISTS`。这是因为...

    Go-Loukoum一个简单的SQL查询生成器

    `Loukoum`还支持插入(Insert)、更新(Update)、删除(Delete)等操作,以及子查询、联接(Joins)、窗口函数等复杂SQL构造。它提供了方便的方法来构建复杂的嵌套查询,使得代码易于阅读和维护。 ### 示例代码 ...

    MS-SQL Server热点话题30问

    3. 如何改写含有子查询的语句:子查询可能会导致查询性能下降,优化时可以考虑使用JOIN语句替代子查询,或调整查询逻辑,避免不必要的全表扫描。 4. 数据被误删的恢复问题:当没有备份时,可以通过日志文件(如SQL ...

    hirbernate2

    5. **Criteria API的子查询**:在高级查询中,可能会用到Criteria API的子查询功能,这使得在Java代码中嵌套查询变得更加方便。 6. **一对多和多对一关系映射**:理解如何配置和使用实体间的一对多和多对一关系,...

    MySql外键设置详解

    3. SET NULL:被父面的外键关联字段被 update、delete 时,子表的外键列被设置为 null。 4. NO ACTION:不进行任何操作。 四、创建外键的注意事项 创建外键时,需要注意以下几点: 1. 所有 tables 必须是 InnoDB ...

Global site tag (gtag.js) - Google Analytics