博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql的一个坑。修改或者删除的时候不能直接调用子查询的结果集
阅读量:5167 次
发布时间:2019-06-13

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

在mysql的语法中。修改或者删除的时候不能直接调用子查询的结果集。需要先给子查询其别名。在调用。

比如:下面的去除重复项

DELETE FROM t_equipment_type t WHERE t.type = 2 

AND (t.type_code,t.type_name) IN (
  SELECT type_code,type_name FROM t_equipment_type
  GROUP BY type_code, type_name HAVING COUNT(*) > 1) 
        AND t.rec_id NOT IN (
  SELECT MIN(rec_id) FROM t_equipment_type 
  GROUP BY type_code, type_name HAVING COUNT(*) > 1)

这样会报错。

正确的写法如下:

DELETE FROM t_equipment_type WHERE rec_id IN (

SELECT b.* FROM (
SELECT rec_id FROM t_equipment_type  WHERE  
type_code IN (
SELECT type_code FROM t_equipment_type WHERE TYPE = 2
GROUP BY type_code HAVING COUNT(*) > 1)
        AND rec_id NOT IN (
SELECT MIN(rec_id) rec_id FROM t_equipment_type WHERE TYPE = 2
GROUP BY type_code,type_name HAVING COUNT(*) > 1)
) b )

 

转载于:https://www.cnblogs.com/hongzq/p/8807445.html

你可能感兴趣的文章
linux第1天 fork exec 守护进程
查看>>
Ajax原理学习
查看>>
最新最潮的24段魔尺立体几何玩法(2016版)
查看>>
C# 3.0 LINQ的准备工作
查看>>
CodeForces - 449D Jzzhu and Numbers
查看>>
mysql批量插入更新操作
查看>>
[LeetCode-122] Best Time to Buy and Sell Stock II
查看>>
web应用防火墙的功能
查看>>
静态代码审查工具FxCop插件开发(c#)
查看>>
MySQL5.7的参数优化
查看>>
二维数组
查看>>
java的for循环问题的解决,以及安卓中ListView插入数据的问题
查看>>
JUnit4的使用
查看>>
objective-c-sort-keys-of-nsdictionary-based-on-dictionary-entries
查看>>
将Solr的数据存到Hdfs上
查看>>
Calendar /String /Date 转换
查看>>
TypeScript - 接口
查看>>
js生成随机数的过程解析
查看>>
创建代码仓库
查看>>
理解裸机部署过程ironic
查看>>