mysql 开发技巧之JOIN 更新和数据查重/去重

作者:_wave 时间:2024-01-17 06:30:54 

主要涉及: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_a
FROM t1 a INNER JOIN t2 b on
a.col_a = b.col_a
)
;
ERROR:1093

可转换为:


UPDATE t1 aa JOIN(
SELECT b.col_a
FROM t1 a INNER JOIN t2 b on
a.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 id
FROM t1
GROUP BY col_a HAVING COUNT(*) > 1
)b ON a.col_a = b.col_a
WHERE a.id < b.id
;

感谢阅读此文,希望能帮助到大家,谢谢大家对本站的支持!

标签:mysql,开发技巧,JOIN,数据查重/去重
0
投稿

猜你喜欢

  • python实现获取单向链表倒数第k个结点的值示例

    2022-10-12 17:38:10
  • python二分法查找实例代码

    2022-08-28 17:25:25
  • Python如何转换字符串大小写

    2021-03-16 17:40:20
  • SQL Server 使用触发器(trigger)发送电子邮件步骤详解

    2024-01-22 11:15:39
  • Python pygame 项目实战事件监听

    2023-05-31 21:33:20
  • GoJs面板绘图模板go.Panel使用示例详解

    2024-05-21 10:14:08
  • 在MySQL中使用子查询和标量子查询的基本操作教程

    2024-01-15 15:00:08
  • Django实现学生管理系统

    2023-07-22 18:05:59
  • Django框架静态文件处理、中间件、上传文件操作实例详解

    2021-03-07 14:31:04
  • Pycharm学习教程(7)虚拟机VM的配置教程

    2022-10-12 16:49:33
  • python 将html转换为pdf的几种方法

    2023-03-30 11:50:11
  • Mysql数据库从5.6.28版本升到8.0.11版本部署项目时遇到的问题及解决方法

    2024-01-26 03:14:50
  • dl,dt,dd标签 VS 传统table实现数据列表

    2009-08-02 20:45:00
  • Python使用爬虫猜密码

    2023-03-21 12:38:39
  • pandas DataFrame创建方法的方式

    2023-03-02 11:47:52
  • MySQL存储过程的概念与用法实例

    2024-01-20 07:45:30
  • QQ影音正式版官网Banner设计

    2009-03-27 18:46:00
  • 一个统计表每天的新增行数及新增存储空间的功能

    2024-01-13 22:27:40
  • 深入理解 Python 中的多线程 新手必看

    2021-10-09 16:11:45
  • ORACLE 超长字符串问题的解决办法

    2024-01-22 07:25:10
  • asp之家 网络编程 m.aspxhome.com