MySQL中Update、select联用操作单表、多表,及视图与
MySQL中的更新与选择:单表、多表操作及临时表与视图之别
一、MySQL中的从表A取出数据更新表B的内容
在MySQL中,有时我们需要根据表A中的数据来更新表B的内容。一种常见的方法是使用UPDATE语句联合两个或多个表。例如,假设我们有两个表:data和chanpin。我们想根据chanpin表中的某些字段来更新data表中的字段。在不使用显式的SELECT关键字的情况下,我们可以这样操作:
```sql
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.jdxs + d.jishud + d.xs1 + d.xs2 + d.xs3,
d.wygs = d.bjgs
WHERE
d.id = ?
AND c.chanpin = ?
AND c.fenlei = ?;
```
二、MySQL中在同一张表上进行update和select操作
在MySQL中,不能直接在一个UPDATE语句中使用要更新的同一张表进行SELECT查询。例如,下面的语句会报错。
```sql
update TBCP_SELLER set status = (select STATUS from TBCP_SELLER where tbid=) where tbid=;
```
为了解决这个问题,我们可以使用视图(View)或者子查询的方式来实现。例如:
```sql
update TBCP_SELLER set status = (select STATUS from (select from TBCP_SELLER) as x where x.tbid=) where tbid=;
```
请注意,子查询中的"as x"是必须的,因为每一个派生表必须有自己的别名。
三、临时表与视图的区别
1. 临时表:
临时表是在系统临时文件夹中建立的表。它就像普通的表一样,可以进行各种操作,而且在VFP退出时会自动被释放。创建MySQL临时表的语句中需要加入TEMPORARY关键字。例如:
```sql
CREATE TEMPORARY TABLE tmp_table (name VARCHAR(10) NOT NULL, value INTEGER NOT NULL);
```
2. 视图:
MySQL中的Update和Select联用操作可以实现对单表、多表的灵活更新,而临时表和视图则为数据库操作提供了更多的可能性。希望这篇文章能帮助你更好地理解MySQL中的这些概念和操作。
编程语言
- MySQL中Update、select联用操作单表、多表,及视图与
- MySQL创建带特殊字符的数据库名称方法示例
- PHP 自定义错误处理函数trigger_error()
- ThinkPHP学习笔记(一)ThinkPHP部署
- JavaScript对数字的判断与处理实例分析
- PHP实现根据时间戳获取周几的方法
- PHP下载大文件失败并限制下载速度的实例代码
- ASP.NET MVC4入门教程(三):添加一个视图
- 一个简单的asp数据库操作类
- JavaScript动态提示输入框输入字数的方法
- Flex控制弹出窗口拖动范围示例代码
- Boostrap栅格系统与自己额外定义的媒体查询的冲突
- php连接mssql数据库的几种方法
- PHP的Json中文处理解决方案
- Smarty模板学习笔记之Smarty简介
- 微信小程序局部刷新触发整页刷新效果的实现代