SQL 基础语法整理
2016-03-31 09:52
585 查看
update select 之后的数据
update B set B_account = b.s_amount from B a, ( select sum(amount) as s_amount,pay_id from A group by pay_id ) b where a.pay_id = b.pay_id select name from (select name,avg(score) as a_score from student where name like '张%' group by name) a where a.a_score > 75
可以看出Mysql、Sybase、SQL SERVER的解决办法是使用UPDATE…SET…FROM…WHERE…的语法,实际上就是从源表获取更新数据。
注意:from后面是两个表的连接,源表+查询结果表。
oracle、DB2中:
UPDATE A SET (A1, A2, A3) = (SELECT B1, B2, B3 FROM B WHERE A.ID = B.ID) WHERE ID IN (SELECT B.ID FROM B WHERE A.ID = B.ID) UPDATE A SET (A1, A2, A3) = (SELECT B1, B2, B3 FROM B WHERE A.ID = B.ID)
可以看出,后面的查询只是查询的一张表。
注意:mysql 5.7中上面语句不好使,要这样写:
update users a left join employee b on a.users_id = b.id set a.salary = b.salary;
相关文章推荐
- Oracle存储过程基本语法介绍-实例
- SQL - 语法收集
- mysql 增、删、改、查 、函数、执行次序
- CentOS安装Redis
- Codis使用过程中遇到的问题
- redis统计APP在线人数
- Odoo8中通过域名来自动选择数据库
- Oracle存储过程语法
- SQL 整形アドレス
- 在Centos上搭建Codis的Redis 集群解决方案
- 如何编译orcal数据库插件
- mysql索引总结----mysql 索引类型以及创建
- oracle 安装过程里面出现的问题 :
- Oracle存储过程基本语法介绍-存储过程创建语法
- Oracle存储过程基本语法介绍-存储过程
- 最详细的Codis集群扩容方法
- OTL Oracle
- MySQL——修改root密码的4种方法(以windows为例)
- Oracle SQL Developer 连接 MySQL
- 【数据库】Oracle中的字符型及处理方法