文档章节

多表更新 连接

T
 Thinkle13
发布于 2017/08/30 01:02
字数 275
阅读 9
收藏 0

1.创建分类表,并将商品表中的所有分类写入分类表

①首先新建一张分类表

CREATE TABLE tdb_goods_cates(
cate_id SMALLINT UNSIGNED PRIMAREY KEY AUTO_INCREMENT,
cate_name VARCHAR(40) NOT NULL);

②然后将tdb_goods表中的goods_cate的数据写入tdb_goods_cates表中

INSERT tdb_goods_cates(cate_name) SELECT goods_cate FROM tdb_goods GROUP BY goods_cate;

③为了节省商品表中数据所占的字节空间,下面将商品表中的分类由文字改为由分类表中的cate_id代替

UPDATE tdb_goods INNER JOIN tdb_goods_cate ON goods_cate = cate_name SET goods_cate = cate_id;

 

以上三步可以简化为

CREATE TABLE IF NOT EXISTS tdb_goods_cate(
cate_id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
cate_name VARCHAR(40) NOT NULL)
SELECT goods_cate FROM tdb_goods GROUP BY goods_cate;

UPDATE tdb_goods INNER JOIN tdb_goods_cates ON goods_cate = cate_name SET goods_cate = cate_id;

 

※如果分类表和商品表要连接的两个字段名相同,在更新时可以这样写

UPDATE tdb_goods AS a INNER JOIN tdb_goods_cates AS b ON a.goods_cate_name = b.goods_cate_name SET a.goods_cate_name = cate_id;

 

2.更新后,再将商品表结构的类型进行修改,否则数据显示的数字,但占用的还是字符的字节,没有达到节省空间的效果。

ALTER tdb_goods 
CHANGE goods_cate cate_id SMALLINT UNSIGNED NOT NULL;

 

© 著作权归作者所有

共有 人打赏支持
T
粉丝 0
博文 9
码字总数 1284
作品 0
成都
MySQL学习笔记-子查询和连接

MySQL学习笔记-子查询和连接 使客户端进入gbk编码方式显示: mysql> SET NAMES gbk; 1.子查询 子查询的定义: 子查询(Subquery)是指出现在其他SQL语句内的SELECT子句。 例如: SELECT * FRO...

谢育政
06/26
0
0
CoreData 与 SQLite 比较

CoreData.framework : iOS中提供了对原始SQLite数据库API访问的封装,通过这个framework来管理数据缓存和持久数据要比使用SQL语句操作SQLite数据库简单和方便许多。 机制:通过framework来存...

木木情深
2013/12/19
0
0
MySQL增删改插 及表的复制及改名

MySQL增、删、改、插 全表查询表记录 格式1:select 字段1,...字段N from 库名.表名; 格式2:select 字段1,...字段N from 库名.表名 where 条件表达式; 注意事项: 1.使用"*"可匹配所有字段...

夜流璃雨
06/26
0
0
.NET Chloe.ORM v2.10 简化多表连接查询

Chloe.ORM:一款高质量的.Net C#数据库访问框架(ORM)。支持SqlServer、MySql、Oracle及SQLite,实体为纯POCO,支持基本数据类映射的同时也支持枚举类型。查询接口借鉴linq,支持lambda表达式...

so_while
2017/06/19
560
5
dml--数据操控语句

#插入语句 #INSERT INTO tablename (field1, filed2) VALUES(value1, value2); INSERT INTO EMP(, , ) VALUES('DY', '2015-12-25', '2000'); #多条插入 INSERT INTO EMP(, , ) VALUES('dd',......

xbuding
2016/04/26
42
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

OSChina 周三乱弹 —— 我居然在 osc 里追剧

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @舆情风控小组 :分享王菲的单曲《笑忘书》 《笑忘书》- 王菲 手机党少年们想听歌,请使劲儿戳(这里) @艾尔库鲁斯:如果给大家一个选择的机...

小小编辑
45分钟前
70
6
rabbitMq的客户端使用笔记

1、channel声明队列的queueDeclare方法的参数解析 durable: 是否持久化, 队列的声明默认是存放到内存中的,如果rabbitmq重启会丢失,如果想重启之后还存在就要使队列持久化,保存到Erlang自...

DemonsI
53分钟前
0
0
“全新” 编程语言 Julia开箱体验

本文共 851字,阅读大约需要 3分钟 ! 概 述 Julia 是一个 “全新”的高性能动态编程语言,前两天迎来了其 1.0 正式版的重大更新。Julia集 Python、C、R、Ruby 之所长,感觉就像一种脚本语言...

CodeSheep
今天
12
0
软件自动化测试初学者忠告

题外话 测试入门 很多受过高等教育的大学生经常问要不要去报测试培训班来入门测试。 答案是否。 高等教育的合格毕业生要具备自学能力,如果你不具备自学能力,要好好地反省一下,为什么自己受...

python测试开发人工智能安全
今天
5
0
java并发备忘

不安全的“先检查后执行”,代码形式如下: if(条件满足){ //这里容易出现线程安全问题//doSomething}else{//doOther} 读取-修改-写入 原子操作:使用CAS技术,即首先从V中读取...

Funcy1122
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部