1. 关联表更新
mysql关联多表进行update更新操作
UPDATE Track INNER JOIN MV ON Track.trkid=MV.mvid SET Track.is_show=MV.is_show WHERE trkid<6
等同于
UPDATE Track,MV SET Track.is_show=MV.is_show WHERE Track.trkid=MV.mvid and trkid<6
实例:
UPDATE erp$pro$category_mapping cm JOIN erp$pro$category_operation co ON cm.category_operation_id = co.category_id SET cm.STATUS = 2 WHERE (co.category_path LIKE '12/%' OR co.category_id = 12) ;
参考文章:http://blog.sina.com.cn/s/blog_4c197d420101aer2.html
2. 关联表删除
DELETE cm FROM erp$pro$category_mapping cm JOIN erp$pro$category_operation cp WHERE cp.channel_id = 11 AND cp.LEVEL <> 1;
3. 更新条件where in条件中有子查询时的写法
UPDATE erp$pro$sku_channel_relation SET STATUS = 1 WHERE product_sku_id IN ( SELECT product_sku_id FROM ( --(where条件有子查询无法更新的解决办法) SELECT DISTINCT t.product_sku_id FROM erp$pro$product_sku t JOIN erp$pro$product p ON t.product_id = p.product_id WHERE t.STATUS = 1 AND p.is_m2b_product IS NULL AND t.sku_type >= 0 AND t.is_gift = 0 AND t.product_sku_id IN (SELECT product_sku_id FROM erp$pro$sku_channel_relation WHERE channel_id = 9 AND STATUS = 2) ) tt ) AND channel_id = 9 AND STATUS = 2;
最开始我定成如下SQL时总是报Error Code:1093错误:
UPDATE erp$pro$sku_channel_relation SET STATUS = 1 WHERE product_sku_id IN ( SELECT DISTINCT t.product_sku_id FROM erp$pro$product_sku t JOIN erp$pro$product p ON t.product_id = p.product_id WHERE t.STATUS = 1 AND p.is_m2b_product IS NULL AND t.sku_type >= 0 AND t.is_gift = 0 AND t.product_sku_id IN (SELECT product_sku_id FROM erp$pro$sku_channel_relation WHERE channel_id = 9 AND STATUS = 2) ) AND channel_id = 9 AND STATUS = 2;
4. 关联表更新条件中有子查询时写法
UPDATE erp$pro$sku_channel_relation a JOIN erp$pro$product_sku t ON a.product_sku_id=t.product_sku_id JOIN erp$pro$product p ON t.product_id = p.product_id SET a.STATUS = 1 WHERE a.channel_id=9 AND a.STATUS = 2 AND t.STATUS = 1 AND p.is_m2b_product IS NULL AND t.sku_type >= 0 AND t.is_gift = 0 AND t.product_sku_id IN ( SELECT product_sku_id FROM ( --In 查询方式的解决办法 SELECT product_sku_id FROM erp$pro$sku_channel_relation WHERE channel_id = 9 AND STATUS = 2 ) tt );
最开始的写法,没有在子查询外再包一层查询的时候总是报Error Code:1093错误:
UPDATE erp$pro$sku_channel_relation a JOIN erp$pro$product_sku t ON a.product_sku_id=t.product_sku_id JOIN erp$pro$product p ON t.product_id = p.product_id SET a.STATUS = 1 WHERE a.channel_id=9 AND a.STATUS = 2 AND t.STATUS = 1 AND p.is_m2b_product IS NULL AND t.sku_type >= 0 AND t.is_gift = 0 AND t.product_sku_id IN ( SELECT product_sku_id FROM erp$pro$sku_channel_relation WHERE channel_id = 9 AND STATUS = 2 );
关联表更新例子
UPDATE erp$act$activity_sku acts JOIN ( SELECT p.brand_id, p.mft_id, pc.category_id, ps.sku_number FROM erp$pro$product p JOIN erp$pro$product_sku ps ON ps.product_id = p.product_id JOIN erp$pro$product_category pc ON p.product_id = pc.product_id JOIN erp$act$activity_sku ask ON ask.sku_number = ps.sku_number WHERE ask.sku_number IS NOT NULL ) t ON acts.sku_number = t.sku_number SET acts.brand_id = t.brand_id , acts.mft_id = t.mft_id, acts.category_id = t.category_id
MySQL 1093错误参考文章:http://www.2cto.com/database/201308/236323.html
相关推荐
mysql级联更新和级联删除,区分有级联和没级联操作的区别之处
mysql 如果卸载不彻底,再次安装时会出现问题,附件是彻底卸载mysql方法-删除注册码
此Markdown文档提供了MySQL...通过阅读和实践这个文档,您将能够更好地掌握MySQL数据库中更新和删除数据的操作方法。无论是初学者还是有经验的用户,都可以通过本文档来加深对MySQL DML更新和删除操作的理解和应用。
mysql压缩版彻底删除方法,有图文介绍!由于安装某个项目的执行文件,提示要卸载MySQL以便它自身MySQL安装,然后我禁用了MYSQL服务,再把这个文件夹删除后,发现还是提示请卸载MYSQL服务。
MySQL删除重复记录方法。
MySQL删除数据库恢复方法分享.pdfMySQL删除数据库恢复方法分享.pdfMySQL删除数据库恢复方法分享.pdfMySQL删除数据库恢复方法分享.pdfMySQL删除数据库恢复方法分享.pdfMySQL删除数据库恢复方法分享.pdf
观看本文前最好有一定的Linux命令基础,具体为centos7.3环境中清除使用yum安装的Mysql 卸载前请先关闭Mysql服务 ...使用过rpm -ev +对应文件名 删除上面Mysql对应结果 rpm -ev mysql-community-
如何完全干净地删除MySQL数据库
(5)更新数据方法:db->update(dataList); (6)查一条数据方法:db->find(); (7)查询多条数据方法:db->select(); (8)删除一条数据:db->del(); (9)清空一个数据表所有数据:db->clear(); (10)统计数量...
7.11 DELETE (删除)句法 7.12 SELECT (精选)句法 7.13 JOIN (联接)句法 7.14 INSERT (插入)句法 7.15 REPLACE (替换)句法 7.16 LOAD DATA INFILE (装载数据到文件)句法 7.17 UPDATE ...
mysql索引导出删除
在数据库MySQL中利用外键实现级联删除、更新等方面的内容。有兴趣可以看看。。
本文主要通过实际操作说明对binlog日志恢复MySQL数据库删除数据的方法进行说明,内容主要包括MySQL数据库binlog日志查询、恢复等相关介绍,希望对大家在工作及生活中遇到的此类问题有所帮助,如需操作指导,可留言!
mysql的使用方法,基本的命令大全,创建库,删除
1.前言在MySQL的使用过程中,对SQL加锁的类型经常感到疑惑,这让死锁分析也变得举步维艰。因此需要将MySQL的各种SQL在各个隔离级别下加的锁进行分析,以
mysql的LOG日志占用空间如果比较大的话,需要进行清理,整理了日志清理的四种方法,方便大家安全清理日志
MySQL的删除步骤详细到注册表的删除。注意数据库中表的保存
Mysql数据库由于断电重启或者手动误删frm和ibd文件导致表创建不成功。亲测可以重新创建成功
Java连接MySql数据库,并且实现插入、删除、更新、选择操作.pdf
Mysql数据库忘记备份数据库,通过.frm和.ibd文件恢复数据的方法,最后只能通过恢复工具找到数据库的.frm和.ibd文件, 整个恢复过程其实可以总结为下面几步: (1):恢复mas2020数据库文件 (2):恢复表结构 ...