博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MYSQL 开发技巧
阅读量:5104 次
发布时间:2019-06-13

本文共 803 字,大约阅读时间需要 2 分钟。

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

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

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

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

[][1]

[1]:

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_aSET col_a = 'hi' ;

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

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

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

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

DELETE aFROM 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_aWHERE a.id < b.id;

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

你可能感兴趣的文章
jquery获取复选框checkbox的值
查看>>
SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
查看>>
[个人原创]关于java中对象排序的一些探讨(一)
查看>>
Unix/Linux笔记全集
查看>>
转: Oracle AWR 报告 每天自动生成并发送邮箱
查看>>
让div容器中的图片水平、垂直居中
查看>>
uboot之uboot.lds文件分析
查看>>
10_android打包的过程
查看>>
MySql update inner join!MySql跨表更新 多表update sql语句?如何将select出来的部分数据update到另一个表里面?...
查看>>
我最宏大的个人愿望
查看>>
北漂周记--第5记--拼命编程
查看>>
比赛总结一
查看>>
SpringBoot项目打包
查看>>
JSP的3种方式实现radio ,checkBox,select的默认选择值
查看>>
Linux操作系统 和 Windows操作系统 的区别
查看>>
《QQ欢乐斗地主》山寨版
查看>>
文件流的使用以及序列化和反序列化的方法使用
查看>>
Android-多线程AsyncTask
查看>>
第一个Spring冲刺周期团队进展报告
查看>>
C++函数基础知识
查看>>