mysql sql 多表更新语句_MySQL跨表、多表更新SQL语句总结
Mysql跨表、多表更新SQL语句总结
MySQL可以在一个SQL语句中更新多张表的记录,也可以通过多个表之间的关联关系更新某个表的数据。
假定目前有两张表goods和goods_price表,前者是保存商品的具体信息,后者是保存商品的价格,具体的表结构如下:
create table goods (
`id` int unsigned primary key auto_increment,
`goods_name` varchar(30) not null default '',
`deleted_at` int unsigned default null
)engine innodb charset utf8;
create table goods_price (
`goods_id` int unsigned not null,
`price` decimal(8,2) not null default '0.00'
)engine innodb charset utf8;
insert into goods (id,goods_name) values (1,'商品1'),(2,'商品2'),(3,'商品3'),(4,'商品4'),(5,'商品5');
insert into goods_price values (1,'5.44'),(2,'3.22'),(3,'5.55'),(4,'0.00'),(5,'4.54');
在update时使用逗号分割更新
将未删除的商品的价格*0.5,具体SQL语句如下:
UPDATE goods as g , goods_price as p SET p.price = p.price*0.5 WHERE p.goods_id = g.id AND g.deleted_at is null;
使用inner join更新数据
UPDATE goods g INNER JOIN goods_price p ON g.id=p.goods_id SET p.price=p.price*0.5 where g.deleted_at is null;
更新多个表
上面的更新语句使用另一个表的条件,更新一张表,也可以更新多个表。具体SQL语句如下:
UPDATE goods g INNER JOIN goods_price p on g.id=p.goods_id set p.price=p.price*0.5,g.deleted_at=unix_timestamp(now()) where g.is_deleted_at is null;
mysql sql 多表更新语句_MySQL跨表、多表更新SQL语句总结相关推荐
- mysql中表结构语句_mysql中表数据与表结构复制语句
本文章来给各位朋友介绍一下关于在mysql中进行表数据与表结构复制语句,方法会有很多种下面我来介绍介绍,有需要了解的朋友可参考. 先来总结复制表与结的方法 一.CREATE TABLE 方法 整表复制 ...
- mysql中多表联合查询语句_mysql中的多表联合查询语句是什么
mysql中的多表联合查询语句是:[select 语句1 union [union 选项] select 语句2 union [union 选项] select 语句n].多表联合查询结果是将多个se ...
- mysql建库建表的语句_mysql建库建表语句
1.mysql管理数据库 1.1 创建数据库 创建数据库:CREATE DATABASE 数据库名; 显示数据库名: show database; 1.2删除数据库 删除数据库:drop databa ...
- mysql导出建库语句_mysql建库建表,导出表结构
//建库: create database db_name character set =utf8; /*建立库db_name,默认字符集为utf8*/ //建表: create table tb_1 ...
- mysql导入多条数据语句_MySQL插入多条记录和REPLACE语句
今天遇到样一个问题,在使用Mysql数据库时,新建一个表,并设置主键为自增长,结果当我一次执行多条插入语句时悲剧了,它竟然报错了,信息如下: 错误码: 1064 You have an error i ...
- delete select语句_MySQL InnoDB锁介绍及不同SQL语句分别加什么样的锁
作者:iceman1952 链接:https://blog.csdn.net/iceman1952/article/details/85504278 本文中,我们详细介绍MySQL InnoDB存储引 ...
- mysql分库分区分表怎么做_mysql 分区、分表、分库分表。
一,什么是mysql分表,分区 什么是分表,从表面意思上看呢,就是把一张表分成N多个小表,具体请看:mysql分表的3种方法 什么是分区,分区呢就是把一张表的数据分成N多个区块,这些区块可以在同一个磁 ...
- db2分页查询sql语句_MySQL学习(八):SQL查询语句的用法和优化
一.概述 MySQL的性能优化可以从机器硬件,如磁盘,内存等:MySQL服务器配置,如线程数,查询缓存等:MySQL的主从分离和分库分表等:SQL语句优化等.其中SQL语句优化是与日常开发密切相关的, ...
- jdbc 生成建表语句_mysql数据库下建表语句
mysql建立数据库报错You have an error in your SQL syntax; check the manual that corresponds to your MySQL se ...
- mysql数据库表添加字段_mysql数据库怎么给表增加一个字段?
mysql数据库给表增加一个字段的方法:可以使用"ALTER TABLE"语句来增加一个字段,语法格式"ALTER TABLE 表名 ADD 新字段名 数据类型 [约束条 ...
最新文章
- ajax和cs的关系,fetch、axios 与Ajax之间关系
- Nginx基础配置实例需求分析
- 内存泄漏java例子_一次线上Java应用内存泄漏分析实例
- JavaFX真实世界应用程序:欧洲电视网广播联盟
- n的阶乘程序python_Python程序对N阶乘的尾随零进行计数
- imail PHP,NT下基于邮件服务软件(IMAIL)的邮件发送程序–(本地版)-PHP教程,邮件处理...
- Blockathon记录——by 参赛者 张翔
- svn对项目权限进行管理
- MCP2515波特率配置
- NVIDIA 控制面板闪退问题解决
- 自建DDNS配置教程(dynu)
- STM32+WIFI模块(EMW3080)使用MQTT协议链接阿里云服务器
- bc547可以用8050代换吗_常用三极管代换型号
- springcloud配置中心config上线时配置文件被其他服务无法读取的两种情况
- Java核心知识点精心整理(全是精华)
- 所见所得的OFFICE功能区编辑器(自定义界面编辑)RibbonCreator
- Word文档 替换功能
- Android The emulator process for AVD XXX has terminated.
- 有关meta learning 要读的论文清单
- linux centos服务器安全初级防御