主要涉及:JOIN 、JOIN 更新、GROUP BY HAVING 数据查重/去重

1 INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN(MySQL 不支持)、CROSS JOIN

这是在网上找到的非常好的一篇博文,图解 join 语句:

CODING HORROR-A Visual Explanation of SQL Joins

下图可以很清楚的明白,join 的数据选取范围

[][1]
[1]: http://7xs09x.com1.z0.glb.clouddn.com/160725-imooc-mysql-development-skills-notes-001.png

2 更新使用过滤条件中包括本身的表

更新 t1 t2 表中 col_a 重复的字段

UPDATE t1
SET col_a = 'hi'
WHERE t1.col_a IN (SELECT b.col_aFROM t1 a INNER JOIN t2 b ona.col_a = b.col_a
)
;
ERROR:1093 

可转换为:

UPDATE t1 aa JOIN(SELECT b.col_aFROM t1 a INNER JOIN t2 b ona.col_a = b.col_a
)bb on aa.col_a= bb.col_a
SET col_a = 'hi'
;

3 查询重复数据、删除重复数据

利用 GROUP BY 和 HAVING 查询重复数据

SELECT col_a, COUNT(*)
FROM t1
GROUP BY col_a HAVING COUNT(*) > 1
;

删除重复数据,对于相同数据保留 ID 最大的

DELETE a
FROM t1 a JOIN (SELECT col_a,COUNT(*),MAX(id) AS idFROM t1GROUP BY col_a HAVING COUNT(*) > 1
)b ON a.col_a = b.col_a
WHERE a.id < b.id
;

转载于:https://www.cnblogs.com/wave-gbt/p/5902435.html

MYSQL 开发技巧相关推荐

  1. MySQL编程技巧_MySQL学习笔记---MySQL开发技巧

    SQL语句分类 DDL:数据定义语言 --- CREATE.ALTER.DROP.TRUNCATE TPL:事务处理语言 --- COMMIT.ROLLBACK.SAVEPOINT.SET TRANS ...

  2. MySQL开发技巧 第二禅(子查询中匹配两个值、解决同属性多值过滤的问题、计算累进税的问题)

    一.如何在子查询中匹配两个值 mysql子查询的使用场景及其好处 1.什么是子查询?             当一个查询是另一个查询的条件时,称之为子查询(可以在curd中) 2.常见的子查询使用场景 ...

  3. MySQL开发技巧——查询、索引和完整性

     目录 第1关 基本查询的学习 查询语句SELECT 头歌实验 查询语句SELECT 第2关 深入学习查询语句 MySQL聚集函数 头歌实验 MySQL聚集函数 第3关 视图的创建和使用 查看数据库中 ...

  4. MySQL开发技巧——批量数据入库及检索

    目录 第1关 MySQL数据库连接 头歌实验 第2关 数据库与数据表创建 数据表的创建 头歌实验 获取游标 数据表的创建 第3关 批量数据入库与检索 事务提交与关闭连接 头歌实验 格式化字符串 利用游 ...

  5. MySQL开发技巧 - 批量数据入库及检索

    第1关:MySQL数据库连接 连接平台中的数据库 平台中已配置好MySQL数据库,用户名默认为'root',密码为'123123' # coding=utf-8 import pymysql def ...

  6. Mysql开发技巧 批量入库及检索

    第一关  MySQL数据库连接 任务描述 Python可以通过MySQLdb库连接MySQL数据库,但Python3之后不再支持MySQLdb库,需要通过pymysql库连接. pymysql通过co ...

  7. Educoder头歌--MySQL开发技巧 - 批量数据入库及检索

    第1关:MySQL数据库连接 connect方法的参数含义如下: host:数据库主机名,默认是用本地主机 user:数据库登陆名,默认是当前用户 passwd:数据库登陆的密码,默认为空 chars ...

  8. MySQL开发技巧——行列转换

    第1关 使用CASE语句实现行转列 任务描述 本关任务:使用CASE语句将学生成绩表中的所有成绩转换成具体每科的成绩进行多列显示. 相关知识 统计打怪数问题 观察下面数据,我们需要将左边hunt表中的 ...

  9. MySQL开发技巧 第二禅(子查询中匹配两个值、解决同属性多值过滤的问题、计算累进税的问题)...

    https://blog.csdn.net/xiesq5112/article/details/52154169 转载于:https://www.cnblogs.com/maohuidong/p/10 ...

  10. 《大型数据库技术》MySQL的进阶开发技巧

    MySQL的进阶开发技巧 1.MySQL的存储过程 1.1 创建企业销售系统的数据库,命名为salesdb 1.2 创建一张商品销售表,命名为salerecords,包括如下字段:商品ID,商品名称, ...

最新文章

  1. 湖南理工学院计算机老师信息,郭观七(计算机与信息工程系)老师 - 湖南理工学院 - 院校大全...
  2. 微信小程序项目,实现图书搜索高阶组件:
  3. leetcode222. 完全二叉树的节点个数(两种做法)
  4. selenium用法详解
  5. 天玑720支持鸿蒙系统吗,天玑720属于骁龙多少 天玑720处理器相当于骁龙几
  6. Flutter 页面滚动吸顶详解(NestedScrollView)
  7. javaScript的arguments传参数
  8. 【心电信号】基于matlab GUI自适应滤波+平滑滤波+小波滤波心电信号处理【含Matlab源码 1809期】
  9. Unity中摄像机绕物体旋转和拉近拉远视角的操作
  10. java tracert_tracert-命令小结
  11. 统计学 |辛普森悖论
  12. 手机可以连上wifi,电脑连不上怎么办?
  13. 艺不压身和艺多不养家
  14. 12306之余票查询流程解析
  15. 基于php的海贼王动漫网站
  16. c2-00支持java_双卡超长待机 经典实用诺基亚C2-00图赏
  17. MSDTC无法启动的解决办法
  18. pci配置基地址_PCI配置空间简介
  19. SQL的左连接 ,右连接,内连接和全外连接的4者区别
  20. tga怎么转成png格式?

热门文章

  1. 对称 symmetric
  2. 如何把一个本地jar包发布到服务器上?
  3. CSS margin合并
  4. Golang Web应用 创建docker镜像笔记(win 平台)
  5. 麦子学院-第一阶段-测试基础
  6. WCP源码分析 与SpringMVC学习资料
  7. arguments.callee 指向正在执行的函数的指针
  8. 转:Raft一致性选举算法的ppt与视频
  9. C# 给枚举类型增加一个描述特性
  10. HTML5笔记:跨域通讯、多线程、本地存储和多图片上传技术