一、MySQL中使用从表A中取出数据来更新表B的内容
例如:要update表data中的一些列属性,但是修改属性的内容来源是来自表chanpin。SQL语言中不要显示的出现select关键字
update data d,chanpin c set d.zhulei=c.zhulei,d.xiaolei=c.xiaolei,d.fenxiang=c.fenxiang,d.zhuanye=c.zhuanye,d.jiliang=c.jiliang,d.gs=c.zgs,d.xzgs=c.zgs,d.bjgs=(c.zgs*d.jdxs*d.jishu*d.xs1*d.xs2*d.xs3),d.wygs=d.bjgs,d.hzgs=? where d.id=? and c.chanpin=? and c.fenlei=?";
二、MySQL中update和select的表是同一张表
MySQL有点让人不爽的是它的select from后面不能跟要update的表名,例如:
update TBCP_SELLER set status =( select STATUS from TBCP_SELLER where tbid=2011645303 ) where tbid=2011645303
要更新的表和查询的表名相同,sql执行时报错:You can't specify target table 'TBCP SELLER' for update in FROM clause
应对这个问题,我们可以构造一个视图,用select嵌套的方式实现查询和更新,如下所示:
update TBCP_SELLER set status =( select STATUS from ( select * from TBCP_SELLER )as x where tbid=2011645303 ) where tbid=2011645303
注意上面SQL中的:
( select * from TBCP_SELLER )as x
as x必须要有,否则会报错:Every derived table must have its own alias(每一个派生表必须有自己的别名)
三、临时表与视图的区别
临时表
临时表是建立在系统临时文件夹中的表,如果使用得当,完全可以像普通表一样进行各种操作,在VFP退出时自动被释放。创建MySQL临时表很容易,给正常的CREATE TABLE语句加上TEMPORARY关键字 Sql代码 :
CREATE TEMPORARY TABLE tmp_table ( name VARCHAR(10) NOT NULL, value INTEGER NOT NULL )
CREATE TEMPORARY TABLE tmp_table ( name VARCHAR(10) NOT NULL, value INTEGER NOT NULL )
视图
从用户角度来看,一个视图是从一个特定的角度来查看数据库中的数据。
从数据库系统内部来看,一个视图是由SELECT语句组成的查询定义的虚拟表。
从数据库系统内部来看,视图是由一张或多张表中的数据组成的
从数据库系统外部来看,视图就如同一张表一样,对表能够进行的一般操作都可以应用于视图,例如查询,插入,修改,删除操作等。
问题内容: 数百万条记录的哪个更快:永久表 还是 临时表? 我只需要将其用于1500万条记录。处理完成后,我们将删除这些记录。 问题答案: 在您的情况下,我们使用称为临时表的永久表。这是大量进口的常用方法。实际上,我们通常使用两个登台表,一个带有原始数据,另一个带有清理后的数据,这使得研究提要中的问题变得更加容易(它们几乎总是我们客户发现向我们发送垃圾数据的新方式和多种方式的结果,但是我们必须
问题内容: 我正在尝试为在表格视图单元格中按下的按钮运行一个动作。下面的代码在我的表视图控制器类中。 在我的UITableViewCell类的称为requestCell的插座中,该按钮已被描述为“是”。 我正在使用“解析”来保存数据,并且想在按下按钮时更新对象。我的objectIds数组可以正常工作,cell.yes.tag还会在日志中输出正确的数字,但是,为了正常运行查询,我无法将该数字输入“连
问题内容: 我有两个表: 数量和unit_price(id |名称| order_id | qt | unit_price)和table 。 我想对相同的订单进行表和放置,以获取订单的总价。 该上的项目表查询很简单,适用于相同的order_id内的所有项目给予罚款数额: 但我无法在表中插入此值。我无法完成这项工作: 它返回 我在这里找到了一个非常类似的问题,但答案对我也没有用: 问题答案: 您可以
表单操作 表单为页面的主要组成部分,其中包含许多的表单控件。用户通过控件提供数据并提交给服务器,服务器则做出相应的处理。而编写一个正常工作的表单需要三个部分: 构建表单 服务器处理(提供接受数据接口) 配置表单 构建表单 <form> <p><label>姓名:<input></label></p> <p><label>电话:<input type="tel"></label></p>
用JavaScript操作表单和操作DOM是类似的,因为表单本身也是DOM树。 不过表单的输入框、下拉框等可以接收用户输入,所以用JavaScript来操作表单,可以获得用户输入的内容,或者对一个输入框设置新的内容。 HTML表单的输入控件主要有以下几种: 文本框,对应的<input type="text">,用于输入文本; 口令框,对应的<input type="password">,用于输入口
问题内容: 这似乎很简单,但我坚持使用简单的insert语句。请参见以下内容: 在临时表行中,实际列表是从其他位置动态拉出的(这是出于演示目的)。我收到以下错误消息: 错误代码:1054。“字段列表”中的未知列“ insert_table.resource_id” 现在,我可以在整个temp表上运行一次select,它返回正常值,只是在update语句中失败。我正在MySQL工作台上运行它。完全不