精华内容
下载资源
问答
  • 本文主要向大家介绍了MySQL update嵌套select问题,通过具体的实例让大家了解,希望对大家学习MySQL有所帮助。当你希望更新一批值,且值是通过select条件查询出来时,下面这个错误应该不陌生You can’t specify ...

    本文主要向大家介绍了MySQL update嵌套select问题,通过具体的实例让大家了解,希望对大家学习MySQL有所帮助。

    当你希望更新一批值,且值是通过select条件查询出来时,下面这个错误应该不陌生

    You can’t specify target table ‘x’ for update in FROM clause。

    错误示范 1: A B 有关联同一个key_id , 根据 B表符合条件 -> 更新A表val值。UPDATE A a SET a.val = 2

    WHERE a.id IN ( SELECT a.id FROM A

    LEFT JOIN B ON b.key_id = a.key_id

    WHERE b.satisfy = 1)

    解决思路 1: 使用 INNER JOIN (最简洁)UPDATE A a INNET JOIN B b ON b.key_id = a.key_id

    SET a.val = 2 WHERE b.satisfy = 1

    解决思路 2:UPDATE A a, (SELECT A.id from A

    LEFT JOIN B ON B.key_id= A.key_id

    WHERE B.satisfy = 1) b

    SET a.val = 2

    WHERE a.id = b.id

    本文由职坐标整理并发布,希望对同学们学习MySQL有所帮助,更多内容请关注职坐标数据库MySQL数据库频道!

    展开全文
  • UVA 11168 Airport(凸包+直线方程)题意:给你n[1,10000]个点,求出一条直线,让所有的点都在都在直线的一侧并且到直线的距离总和最小,输出最小平均值(最小值除以点数) 题解:根据题意可以知道任意角度画一条...

    UVA 11168 Airport(凸包+直线方程)

    题意:给你n[1,10000]个点,求出一条直线,让所有的点都在都在直线的一侧并且到直线的距离总和最小,输出最小平均值(最小值除以点数) 题解:根据题意可以知道任意角度画一条直线(所有点都在一边),然 ...

    MySQL学习笔记九:存储过程,存储函数,触发器

    存储过程 1.存储过程由一组特定功能的SQL语句组成,对于大型应用程序优势较大,相对不使用存储过程,具有以下优点: a.性能提高,因为存储过程是预编译的,只需编译一次,以后调用就不须再编译 b.重用性 ...

    纯jsp用户登录系统

    用纯jsp技术实现用户登录系统,需要用到三个.jsp文件.在文本目录下新建三个.jsp文件,分别命名为login.jsp,logincl.jsp和wel.jsp. 1.login.jsp文件用来放界面 ...

    @RestController注解下返回到jsp视图页面

    spring4.1中添加了@RestController注解很方便,集成了@ResponseBody注解,无需再在每个方法前添加了..但是却发现个问题..之前用@Controller注解的时候经常会如 ...

    IEnumerable和IQueryable的区别

    转自:http://www.cnblogs.com/fly_dragon/archive/2011/02/21/1959933.html IEnumerable接口 公开枚举器,该枚举器支持在指定类型 ...

    Maven仓库构建

    什么是Maven仓库 在不用Maven的时候,比如说以前我们用Ant构建项目,在项目目录下,往往会看到一个名为/lib的子目录,那里存放着各类第三方依赖jar文件,如log4j.jar,junit.j ...

    Java开发十大常用网站

    Stackoverflow:有成千上万个好问题和答案 DZone:有相当多的开发者在这个网站上分享他们博客文章 LeetCode:如果有Java方面的面试问题可在教程中找到答案 Java SE技术文档 ...

    How to create a zip file in NetSuite SuiteScript 2.0 如何在现有SuiteScript中创建和下载ZIP压缩文档

    Background We all knows that: NetSuite filecabinet provided a feature to download a folder to a zip ...

    TIME_WAIT 另一种解决方式 SO_LINGER

    被TIME_WAIT问题烦得不行,又发现了另一种解决方式,SO_LINGER.      对SO_LINGER解释最通用的自然是,现摘录如下      SO_LINGE ...

    展开全文
  • MySQL课程练习中题目遇到Mysql update语句赋值嵌套select语句如下:update tc_sc set score=(select avg(tc_sc.score) from tc_sc,tb_teacher,tb_course where tc_sc.cid=tb_course.cid and tb_course.tid=tb_...

    MySQL课程练习中题目遇到Mysql update语句赋值嵌套select

    语句如下:

    update tc_sc set score=(select avg(tc_sc.score) from tc_sc,tb_teacher,tb_course where tc_sc.cid=tb_course.cid and tb_course.tid=tb_teacher.tid and tb_teacher.tname='fp') where cid=(select tc_sc.cid from tb_teacher,tb_course,tc_sc where tc_sc.cid=tb_course.cid and tb_course.tid=tb_teacher.tid and tb_teacher.tname='fp' group by tc_sc.cid);

    出现问题:

    ERROR 1093 (HY000): You can't specify target table 'tc_sc' for update in FROM clause

    查询问题原因在于mysql 定义update语句不能同时对同一张进行set 赋值操作,也就是说 update a 的时候 不能在后面select col from a ,如果是不同表操作是没有问题的。

    最后的解决方案是通过别名避免同表的问题:

    update tc_sc set score=(select avg(tc_sc.score) from (select * from tc_sc) as temp1,tb_teacher,tb_course where tc_sc.cid=tb_course.cid and tb_course.tid=tb_teacher.tid and tb_teacher.tname='fp') where cid=(select tc_sc.cid from tb_teacher,tb_course,(select * from tc_sc) as temp2 where tc_sc.cid=tb_course.cid and tb_course.tid=tb_teacher.tid and tb_teacher.tname='fp' group by tc_sc.cid);

    注意其中的这两句

    (select * from tc_sc) as temp1

    (select * from tc_sc) as temp2

    是避免问题的关键。

    展开全文
  • MySQL update 嵌套 select

    万次阅读 2017-09-25 18:11:30
    当你希望更新一批值,且值是通过select条件查询出来时,下面这个错误应该不陌生 You can’t specify target table ‘x’ for update in FROM clause。 错误示范 1: A B 有关联同一个key_id , 根据 B表符合条件 ->...

    当你希望更新一批值,且值是通过select条件查询出来时,下面这个错误应该不陌生

    You can’t specify target table ‘x’ for update in FROM clause。


    错误示范 1: A B 有关联同一个key_id , 根据 B表符合条件 -> 更新A表val值

    UPDATE A a SET a.val = 2 
    WHERE a.id IN ( SELECT a.id FROM A 
                    LEFT JOIN B ON b.key_id = a.key_id 
                    WHERE b.satisfy = 1)

    解决思路 1: 使用 INNER JOIN (最简洁)

    UPDATE A a INNER JOIN B b ON b.key_id = a.key_id 
    SET a.val = 2 WHERE b.satisfy = 1

    解决思路 2:

    UPDATE A a, (SELECT A.id from A 
                 LEFT JOIN B ON B.key_id= A.key_id
                 WHERE B.satisfy = 1) b
    SET a.val = 2
    WHERE a.id = b.id
    展开全文
  • 因为update嵌套select的时候,select的from后的目标表,不能是,update的目标表,上面updateselect里的from都用到了student_course表,所以应该在select上再嵌套一个select,如下 update student_course set ...
  • MySql Update Select 嵌套

    2014-12-25 11:39:00
    UPDATE `TB_CM_Dic` SET `ParentID` = (SELECT `ID` FROM (SELECT * FROM `TB_CM_Dic`) AS B WHERE `DicName` = '药品类别') WHERE `ID` = ( SELECT `ID` FROM( SELECT * FROM `TB_CM_...
  • PG SQL update 嵌套select写法

    千次阅读 2016-11-10 10:30:03
    需要将自己平时遇到的问题总结成经验出来。 PG 需要将A表中的某个字段值更新到B表中去,写法是这样,比oracle更简单. ...updatehmcp_health_checkup_item b set organ_id = a.organ_id fromhmcp_health_checkup_...
  • update嵌套两个select

    2012-11-24 18:55:49
    update t_inf_tmp tmp set (orignal_useragent, orignal_date)= ( select useragent, insertdate from( select useragent, insertdate from v_his_all his where his.isdn=tmp.isdn and his.insertdate&...
  • UPDATESELECT嵌套使用

    2016-02-29 16:18:00
    1 2 update a set HIGH=b.NEW from SPEC1 a,tmpDOT b  where a.high=b.old
  • SQL UPDATE嵌套使用

    2019-02-22 18:29:00
    遇见的问题 1.更新语句,更新字段 UPDATE number SET sumab = 2 WHERE id =1 求和 SELECT SUM(num_a+num_b)FROM number WHERE ...MySQL不允许SELECT FROM后面指向用作UPDATE的表 既然MySQL是通过临时表来实现F...
  • MySQL update嵌套

    2013-03-25 10:22:50
    当我们想从MySQL中的表table1中取出id=5的列col1(例如: 博客当前访问量)中的数据d1, 并将...update table1 set col1=(select col1 from a where id=5)+1 where id=5; 但在 MySQL 命令列工具中传回: ER
  • 今天在更新一条记录时,突然发现自己竟然连update嵌套使用select都不会用。摸索着写了一条,还报错了。类似如下CREATE TABLE t3( num1 SMALLINT, num2 SMALLINT );INSERT INTO t3 VALUES(20,10),(30,40); num1 ...
  • Mysql update语句赋值嵌套select

    千次阅读 2013-09-08 14:43:30
    Mysql update语句赋值嵌套select   Java代码 update a set col=(select col from a where id='5') where id>5 and id  www.2cto.com   报错了  ERROR 1093 (HY000): You can't specify ...
  • concat_ws()函数, 表示concat with separator,即有分隔符的字符串连接... select concat_ws(',','11','22','33');+-------------------------------+| concat_ws(',','11','22','33') |+---------------------------...
  • 有两个表:SPEC1、tmpDOT SPEC1种一列为:HIGH tmpDOT共有两个:OLD、NEW .............................................update a set HIGH=b.NEW ... set high = (select new from tmpdot where old=a.high ) from spec1 a
  • [code="java"]update a set col=(select col from a where id='5') where id>5 and id
  • select * from 表 where id = 1; update 表 set reading = reading =1 where id = 1; 这两条SQL是在一张表中,我要先进行update操作,然后再进行查询操作。
  • UPDATE嵌套表更新数据

    千次阅读 2007-09-19 20:18:00
    分享一个UPDATE语句中使用FROM的SQL语句:以下例子供大家学习:BBS表的表结构SQL语句:if exists (select * from dbo.sysobjects where id = object_id(N[dbo].[bbs]) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop ...
  • 一 :UPDATE语法#单表语法(常用)UPDATE [LOW_PRIORITY] [IGNORE] table_referenceSET assignment_list[WHERE where_condition][ORDER BY ...] #例如 ORDER BY id DESC; 若ID不重复且自增,故需要先增加的最大的id后...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 676
精华内容 270
关键字:

selectupdate嵌套